用惯了Log4j,现在用到Log4net还真要整上一阵子,总的来说,没有Java下面这么方便.
在Java环境中,只要放一个log4j配置文件,使用默认的文件名,Log4j就会自己去读取,但是在.net 环境下,竟要自己指定Log4net去读取
尝试了会,记录下来,备忘.
Log4net的配置步骤如下:
1. 引用Log4net.dll(http://logging.apache.org/log4net/index.html)
2. 写配置文件,如果发懒,也可以直接拷下面的,再修改
Log4net.config(放置在项目最上层,别忘了设置每次修改都复制到生成目录下)
Code
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<root>
<!--如果只需要看看Sql设置INFO就够了,如果你要调试可以设置为DEBUG或ALL-->
<priority value="debug" />
<appender-ref ref="rollingFile" />
</root>
<logger name="ApplicationInfoLog">
<level value="INFO" />
<appender-ref ref="rollingFile1" />
</logger>
<logger name="NHibernate.Bytecode.CodeDom">
<priority value="INFO" />
<appender-ref ref="rollingFile" />
</logger>
<logger name="NHibernate.SQL">
<level value="INFO" />
<appender-ref ref="rollingFile" />
</logger>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="log/log.txt" />
<param name="AppendToFile" value="false" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
</layout>
</appender>
</log4net>
详细的配置说明这里不作解释,可以到以下官方了解:http://logging.apache.org/log4net/release/config-examples.html
3. 在项目启动文件中(例如AssemblyInfo.cs)里添加以下代码
Code
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]
4. 代码中使用,
引入:using log4net;
定义:private static readonly ILog logger = LogManager.GetLogger(typeof(类名));
使用:logger.***,就这样,不说啦!