在项目开发的过程中,日志是很重要的。而日志可以自己写,也可以使用网上开源的日志组件,这里记录一下自己使用过的log4net 组件的配置吧。
使用log4net 的步骤有两步:
第一,创建一个配置文件,如 log4net.config 文件,内容是xml,当然,配置内容也可以写在 app.config 文件或者web.config 文件当中。不过我比较喜欢新建一个配置文件存放log4net 的配置信息,内容可如下:
<?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> <file value="log/example.log"></file> <appendToFile value="true"/> <maximumFileSize value="1000KB" /> <maxSizeRollBackups value="5" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="[%d] %level %thread - %message%newline"/> </layout> </appender> <root> <level value="DEBUG"></level> <appender-ref ref="RollingFile" /> </root> </log4net>
这里面有一些配置参数,先看log4net 节点下的root 节点,这里有个level 和appender-ref,其中 level 的value 表明什么级别的日志内容可以写入到日志当中,其中包括DEBUG,INFO,WARN,ERROR,FATAL ;而appender-ref 很容易理解,即是指appender 的引用,用于指示你的日志将写入到哪一种媒介当中,可以是控制台,也可以是文件,还可以数据 balabala
这里使用的是 log4net.Appender.RollingFileAppender ,是用于写入文件的appender,其中file 参数值用于指定写入的日志文件路径,maximumFileSize 用于指定单个日志文件的最大存储容量,maxSizeRollBackups 指定达到用于备份的最大数量(这里可以配置为一天也可以配置为其他),如果日志文件过多,则会删除旧的日志文件;layout 参数则用来指定写入日志的内容格式,如%d表示写入时间, %level 表示级别,%thread 表示 线程id,%message 表示你写入的日志内容,%newline 则表示换行,这些参数也可以使用缩写的形式,如%newline 可以写成 %n.
创建好了配置文件之后,可以进行第二步了,就是让项目启动时根据你创建的配置文件来配置log4net:
1、如果是项目类型的程序,比如控制台程序,WPF程序,或者是Web Application ,推荐的方式是在 Properties 中的AssemblyInfo.cs 文件中应用配置,如可以这样写:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
这里需要注意ConfigFile 的值是需要包含配置文件的后缀名的,不然是无法写入日志的。对了,这里注意配置一下log4net.config 文件的属性,使其在项目启动时复制到输出目录。而且这里还有个属性是ConfigFileExtension,注意,一般是不需要添加这个属性,除非你是将配置内容写在配置文件中,并且你的程序生成的exe的配置文件后缀名不是.config 的时候才需要添加该属性。
2、如果是网站类型的程序,则在Global文件中的 Application_Start 事件调用函数中应用配置文件吧,可以这样写:
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("log4net.config")));
然后就可以调用啦,这里是在控制台项目中调用的:
LogManager.GetLogger(typeof(Program).BaseType).Info("开始写日志咯");
结果如下:
一般在项目中可能还会将不同的级别的日志写入到不同的日志文件当中,有兴趣的童鞋可以去看文档哦,虽然英语文档比较难啃,不过啃多了也挺爽的,哈哈