在web及winform中配置log4net.dll和在windows服务中使用log4net.dll
在web及winform中配置log4net.dll:
1.需要在web.config中配置两段代码:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- System Trace-->
<logger name="Info">
<level value="INFO"/>
<appender-ref ref="RollingInfo"/>
</logger>
<logger name="Error">
<level value="ERROR"/>
<appender-ref ref="RollingError"/>
</logger>
<logger name="Trace">
<level value="INFO"/>
<appender-ref ref="RollingTrace"/>
</logger>
<appender name="RollingInfo" type="log4net.Appender.RollingFileAppender">
<file value="Logs\Info\Info"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd'.txt'"/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d[%p][%t]%c %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO"/>
<param name="LevelMax" value="INFO"/>
</filter>
</appender>
<appender name="RollingError" type="log4net.Appender.RollingFileAppender">
<file value="Logs\Error\Error"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd'.txt'"/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d[%p][%t]%c %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
<appender name="RollingTrace" type="log4net.Appender.RollingFileAppender">
<file value="Logs\Trace\Trace"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd'.txt'"/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d[%p][%t]%c %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO"/>
<param name="LevelMax" value="INFO"/>
</filter>
</appender>
<!-- NHibernate trace -->
<logger name="NHibernate" additivity="false">
<level value="WARN"/>
<appender-ref ref="RollingFile"/>
</logger>
<logger name="NHibernate.SQL" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="RollingFile"/>
</logger>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender,log4net">
<file value="Logs\Debug\Debug"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd'.txt'"/>
<staticLogFileName value="false"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<conversionPattern value="%d %p %m%n"/>
</layout>
</appender>
</log4net>
在Global.asax中或者起始类或者配置中加入 log4net.Config.XmlConfigurator.Configure();
项目引用log4net.dll
2.在windows服务中使用log4net.dll
配置此项和1差不多,但是需要在打开 properties/assemblyinfo.cs
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "app.config", Watch = true)]
config文件中的configSections属性也需要更改成
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
在Global.asax中或者起始类或者配置中加入
log4net.Config.XmlConfigurator.Configure();或
log4net.ILog logger = log4net.LogManager.GetLogger("MdaoToBeyondbitSMS");
选择始终复制;
3.下面是使用本次配置的类代码:使用类似于:
using System; using System.Collections.Generic; using System.Text; using log4net; using System.Diagnostics; using System.Reflection; namespace Utilities { public class LogHelper { private static readonly ILog logInfo = LogManager.GetLogger("Info"); private static readonly ILog logError = LogManager.GetLogger("Error"); private static readonly ILog logTrace = LogManager.GetLogger("Trace"); public static void info(string msg) { logInfo.Info(msg); } public static void error(string msg) { StackTrace stackTrace = new StackTrace(); StackFrame stackFrame = stackTrace.GetFrame(1); MethodBase methodBase = stackFrame.GetMethod(); logError.Error("类名:" + methodBase.ReflectedType.Name + " 方法名:" + methodBase.Name + " 信息:" + msg); } public static void trace(string msg) { logTrace.Info(msg); } } }
浙公网安备 33010602011771号