前段时间项目需要运行时记录各种操作log及Error,自己实现也可,但是基于时间考虑,使用了开源的log4net。log4net是log4j的姊妹,都是非常强大的log记录程序集。
使用方法如下:
1.添加log4net的dll引用
2.在web.config中<configuration>节点中添加以下内容
<configuration>
<configSections>
<!--在配置选项中加入log4net的引用-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections><log4net>
<appender name="LogFile" type="log4net.Appender.RollingFileAppender,log4net" >
<!--<param name="File" value="C:\Srvlog.txt" /> 定义用文件来保存日志,生成的文件log.txt和应用程序生成的exe文件在同一目录下。-->
<param name="File" value="Serverlog\Srvlog-" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy-MM-dd".log"" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<!--定义输出风格-->
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------Serverlog-------------------------- " />
<param name="Footer" value=" ------------------------------------------------------------ " />
</layout>
</appender>
<appender>
<!--一个配置文件可以有很多appender,一个appender节就相当于一个日志输出介质或方法。 -->
</appender>
<logger name="logApp">
<!--定义logger对象的名字为logApp,以方便在代码中使用,<logger>
配置项可以不配置-->
<level value="ALL" /><!--定义输出的信息等级为所有其中包括Fatal.Error.Warn.Info.Debug-->
</logger>
<root>
<!--定义日志输出的方式和等级-->
<level value="INFO" />
<appender-ref ref="LogFile" /><!--选择了文件输出,注意粗体部分对应的名称appender-->
</root>
</log4net>
</configuration>3.读取相关配置
private static ILog log = null;
log4net.Config.XmlConfigurator.Configure(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "Web.config"));
log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); //此处使用反射4.调用相关函数记录log
log.Info(content);