C#中增加log4net步骤
要求:日志功能:info, debug ,error 三种级别的日志均可以通过log 日志的方式查看,支持日志按天分文件保存文件夹; 添加日志自动清除策略,支持可配置,默认保留30天
第一步:在NuGet中添加log4net
工具->NuGet包管理器->管理解决方案的NuGet程序包

第二步:增加配置文件log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<root>
<!--打印级别,如果要打Debug日志,请改为BEBUG-->
<level value="INFO" />
<appender-ref ref="ConsoleOutput" />
<appender-ref ref="RollingFileDebug" />
<appender-ref ref="RollingFileInfo" />
<appender-ref ref="RollingFileError" />
</root>
<appender name="ConsoleOutput" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%-5level] [%date{yyyy-MM-dd HH:mm:ss.fff}] %24logger [%line] [%t] [%M] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<appender name="RollingFileDebug" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="logs/debug/client_debug_log_"/>
<appendToFile value="true"/>
<encoding value="utf-8" />
<maxSizeRollBackups value="30"/>
<maximumFileSize value="10MB"/>
<staticLogFileName value="false"/>
<datePattern value="yyyy-MM-dd".log""/>
<rollingStyle value="Date"/>
<!--保证在日志分割时,新日志的序号会添加在后缀名之前-->
<preserveLogFileNameExtension value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%-5level] [%date{yyyy-MM-dd HH:mm:ss.fff}] %24logger [%line] [%t] [%M] - %message%newline" />
</layout>
<lockingmodel type="log4net.appender.fileappender+minimallock" />
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="DEBUG" />
</filter>
</appender>
<appender name="RollingFileInfo" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="logs/info/client_info_log_"/>
<appendToFile value="true"/>
<encoding value="utf-8" />
<maxSizeRollBackups value="30"/>
<maximumFileSize value="10MB"/>
<staticLogFileName value="false"/>
<datePattern value="yyyy-MM-dd".log""/>
<rollingStyle value="Date"/>
<!--保证在日志分割时,新日志的序号会添加在后缀名之前-->
<preserveLogFileNameExtension value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%-5level] [%date{yyyy-MM-dd HH:mm:ss.fff}] %24logger [%line] [%t] [%M] - %message%newline" />
</layout>
<lockingmodel type="log4net.appender.fileappender+minimallock" />
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="ERROR" />
</filter>
</appender>
<appender name="RollingFileError" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="logs/error/client_error_log_"/>
<appendToFile value="true"/>
<encoding value="utf-8" />
<maxSizeRollBackups value="30"/>
<maximumFileSize value="10MB"/>
<staticLogFileName value="false"/>
<datePattern value="yyyy-MM-dd".log""/>
<rollingStyle value="Date"/>
<!--保证在日志分割时,新日志的序号会添加在后缀名之前-->
<preserveLogFileNameExtension value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%-5level] [%date{yyyy-MM-dd HH:mm:ss.fff}] %24logger [%line] [%t] [%M] - %message%newline" />
</layout>
<lockingmodel type="log4net.appender.fileappender+minimallock" />
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="ERROR" />
</filter>
</appender>
</log4net>
第三步:在Main中增加一行代码(用于从指定的XML配置文件(在这个例子中是log4net.config)中加载日志配置)
XmlConfigurator.Configure(new FileInfo("log4net.config"));

浙公网安备 33010602011771号