1 log4net日志文件的使用
步骤 |
内容 |
1 |
下载、安装、及引用log4net.dll。 可通过NuGet搜索安装完成。 |
2 |
添加配置文件。--建议公司定义自己的日志格式,在项目中循环使用。 《日志文件内容的配置说明》。 |
3 |
添加日志配置文件使用的说明。 《日志配置文件的使用说明》。 |
4 |
建议的一般使用方式。 |
1.1 下载或者直接通过nuget 安装log4net.dll
安装后,log4net.dll将被直接引用至项目。
1.2 设置日志的配置文件
可以在项目原有的App.config中增加配置,也可增加一个配置文件。
1.2.1 增加新的配置文件
要点说明:
|
从高到底依次为: OFF > FATAL > ERROR > WARN > DEBUG > INFO > ALL |
|
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 |
|
《日志文件内容的配置文件》
格式1 —引用自:https://www.cnblogs.com/kliine/p/10950859.html |
<?xml version="1.0" encoding="utf-8"?> <configuration> <!-- Level的级别,由高到低 --> <!-- None > Fatal > ERROR > WARN > DEBUG > INFO > ALL--> <!-- 解释:如果level是ERROR,则在cs文件里面调用log4net的info()方法,则不会写入到日志文件中--> <log4net> <!--错误日志类--> <logger name="logerror"> <!--日志类的名字--> <level value="ALL" /> <!--定义记录的日志级别--> <appender-ref ref="ErrorAppender" /> <!--记录到哪个介质中去--> </logger> <!--信息日志类--> <logger name="loginfo"> <level value="ALL" /> <appender-ref ref="InfoAppender" /> </logger> <!--错误日志附加介质--> <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"><!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质--> <param name="File" value="Log\LogError\" /><!--日志输出到exe程序这个相对目录下--> <param name="AppendToFile" value="true" /><!--输出的日志不会覆盖以前的信息--> <param name="MaxSizeRollBackups" value="100" /><!--备份文件的个数--> <param name="MaxFileSize" value="10240" /><!--当个日志文件的最大大小--> <param name="StaticLogFileName" value="false" /><!--是否使用静态文件名--> <param name="DatePattern" value="yyyyMMdd".htm"" /><!--日志文件名--> <param name="RollingStyle" value="Date" /><!--文件创建的方式,这里是以Date方式创建--> <!--错误日志布局--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" /> </layout> </appender> <!--信息日志附加介质--> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="Log\LogInfo\" /> <param name="AppendToFile" value="true" /> <param name="MaxFileSize" value="10240" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".htm"" /> <param name="RollingStyle" value="Date" /> <!--信息日志布局--> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="<HR COLOR=blue>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" /> </layout> </appender> </log4net> </configuration> |
格式2 |
<?xml version="1.0" encoding="utf-8"?> <configuration> <log4net> <appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value=" Log\LogError\error.log" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="10" /> <!--param name="RollingStyle" value="Date" /--> <param name="RollingStyle" value="Size" /> <param name="MaxFileSize" value="10000000" /> <param name="StaticLogFileName" value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d [%t] %-5p - %m%n" /> </layout> </appender> <logger name="LeanOn.MES" additivity="False"> <level value="DEBUG" /> <appender-ref ref="FileAppender" /> </logger> </log4net> </configuration> |
1.3 日志配置文件的配置说明
一定要在Properties中的AssemblyInfo.cs中添加一行。
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] |
说明1: 关于configfile属性 用于制定配置文件的名称和路径。如果无该属性,默认需要在该项目.exe的同一目录下。 如果是创建的配置文件,修改文件的属性如下,这样文件会从配置的目录复制到.exe的目录下。 |
说明2:关于watch属性 Watch=true: 表示在程序运行的过程中会一直监控log4net.config文件的配置。如果文件中的配置发生变化会立刻生效。 Watch=false:仅在程序启动的时候读取配置文件。 *建议设置为true. 这样在程序运行的过程中,随时修改配置文件中的日志等级,可屏蔽低等级的日志。比如原来日志的等级设置为debug,那么程序中日志对象的写入方法优先级>=debug的日志等级都会记录到文件中。而修改为Fatal,则仅记录优先级>=Fatal的日志。 |
1.4 使用log4net
编写一个LogHelper类,然后在需要使用日志的地方调用该LogHelper.WriteLog()方法即可。
public class LogHelper { private const string LogMESIdent = "LeanOn.MES";//这里的 loginfo 和 log4net.config 里的名字要一样
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger(LogMESIdent); public static void WriteLog(string info, Exception ex) { if (logerror.IsErrorEnabled) { logerror.Error(info, ex); } } } |