log4Net应用
首先,AssemblyInfo.cs文件中添加一行代码
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "./log4net.xml", ConfigFileExtension = "xml", Watch = true)]
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%date %-5level %location] %message%newline"/>
</layout>
</appender>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\App\\App-"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyyMMdd.TXT"/>
<param name="StaticLogFileName" value="false"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%date %-5level %location] %message%newline"/>
</layout>
</appender>
<appender name="ErrorFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\ErrorLog\\Error-"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyyMMdd.TXT"/>
<param name="StaticLogFileName" value="false"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%date] %message%newline"/>
</layout>
</appender>
<appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\DebugLog\\Debug-"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyyMMdd.TXT"/>
<param name="StaticLogFileName" value="false"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%date] %message%newline"/>
</layout>
</appender>
<appender name="NetFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\NetLog\\Net-"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Composite"/>
<param name="DatePattern" value="yyyyMMdd.TXT"/>
<param name="StaticLogFileName" value="false"/>
<param name="maximumFileSize" value="100MB"/>
<param name="maxSizeRollBackups" value="10"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%date] %message%newline"/>
</layout>
</appender>
<appender name="AlarmFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\AlarmLog\\I"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyyMMdd.TXT"/>
<param name="StaticLogFileName" value="false"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%message%newline"/>
</layout>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
</appender>
<appender name="YearFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\YearLog\\Year"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Size"/>
<param name="DatePattern" value="yyyyMMdd.TXT"/>
<param name="StaticLogFileName" value="false"/>
<param name="maximumFileSize" value="10MB"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%date] %message%newline"/>
</layout>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="ConsoleAppender"/>
<appender-ref ref="RollingFileAppender"/>
</root>
<logger name="ErrLogger" additivity="false">
<level value="ALL"/>
<appender-ref ref="ErrorFileAppender"/>
</logger>
<logger name="DebugLogger" additivity="false">
<level value="ALL"/>
<appender-ref ref="DebugFileAppender"/>
</logger>
<logger name="NetLogger" additivity="false">
<level value="ALL"/>
<appender-ref ref="NetFileAppender"/>
</logger>
<logger name="AlarmLogger" additivity="false">
<level value="ALL"/>
<appender-ref ref="AlarmFileAppender"/>
</logger>
<logger name="YearLogger" additivity="false">
<level value="ALL"/>
<appender-ref ref="YearFileAppender"/>
</logger>
</log4net>
</configuration>
/**
* 文件名:LogHelper.cs
* 说明:Log4net日志
* 作者:吕令敏
* 更改记录:
* -------------------------------------------------------
* 改动人 时间 原因
* -------------------------------------------------------
* 吕令敏 2022-02-17 创建文件
* -------------------------------------------------------
*/
using System.Reflection;
using log4net;
namespace Common
{
/// <summary>
/// Log4net日志
/// </summary>
public class LogHelper
{
//日志
public readonly static ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public readonly static ILog logerr = LogManager.GetLogger("ErrLogger");
public readonly static ILog logdebug = LogManager.GetLogger("DebugLogger");
public readonly static ILog logNet = LogManager.GetLogger("NetLogger");
public readonly static ILog logAlarm = LogManager.GetLogger("AlarmLogger");
public readonly static ILog logYear = LogManager.GetLogger("YearLogger");
/// <summary>
/// 输出异常信息
/// </summary>
/// <param name="message"></param>
public static void Error(object message)
{
logerr.Info(message);
}
/// <summary>
/// 输出Debug数据
/// </summary>
/// <param name="message"></param>
public static void Debug(object message)
{
logdebug.Info(message);
}
/// <summary>
/// 输出Net语句
/// </summary>
/// <param name="message"></param>
public static void NetLog(object message)
{
logNet.Info(message);
}
/// <summary>
/// 输出报警
/// </summary>
/// <param name="message"></param>
public static void Alarm(object message)
{
logAlarm.Info(message); ;
}
/// <summary>
/// 按大小输出
/// </summary>
/// <param name="message"></param>
public static void Year(object message)
{
logYear.Info(message); ;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术