Log4j是Java下强大的日志记录类库,各语言都有相应实现版本。C的log4c,C++的log4cxx,QT的log4QT,C#下的log4Net。不过还是Log4j和Log4Net比较常用。
一. 下载
从 http://logging.apache.org/log4net/download_log4net.cgi 下载最新版本 log4net-1.2.15-bin-newkey.zip
二. 添加引用
解压$(log4net)/net/4.0/log4net.dll,拷贝至bin目录
右键添加 log4net.dll 的引用
三. 添加log4net配置文件
工程右键->添加新建项->C#->应用配置文件 Log4Net.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--配置按日期生成文件,每天一个,命名为log_20151212.log,生成目录在bin/Debug/Log--> <file value="Log\\log_"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyyMMdd'.log'"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d %-5level %message%newline" /> </layout> </appender> <logger name="mylog"> <level value="INFO"/> <appender-ref ref="RollingFileAppender"/> </logger> </log4net> </configuration>
选中 Log4Net.config 右键属性->高级->复制到输出目录,选择“始终复制”。刚开始没选中该选项,一直没日志产生。
注:因为log4net框架会在相对于AppDomain.CurrentDomain.BaseDirectory (即bin/Debug/Log4Net.config)属性定义的目录路径下查找配置文件。
四. 加载配置文件
AssemblyInfo.cs 添加如下代码:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
CofnigFile属性指定配置文件名称,Watch属性指定配置文件修改后,重新装载。
五. 测试
static void Main(string[] args) { var log = LogManager.GetLogger("mylog"); log.Info("system start"); log.Info("hello world"); }