C#通過log4net進行異常記錄
C#通過log4net進行異常記錄
C#中異常的記錄也有一個模板,就是log4net。多的就不說了直接看怎么用的吧。 1、引用log4net.dll。
2、實現log4net的方法。
public class LogImplement
{
private ILog logger;
public LogImplement(ILog log)
{
this.logger = log;
}
public void Debug(object message)
{
this.logger.Debug(message);
}
public void Debug(object message, Exception e)
{
this.logger.Debug(message, e);
}
public void Warming(object message)
{
this.logger.Warn(message);
}
public void Warming(object message,Exception e)
{
this.logger.Warn(message, e);
}
public void Error(object message)
{
this.logger.Error(message);
}
public void Error(object message, Exception e)
{
this.logger.Error(message, e);
}
public void Info(object message)
{
this.logger.Info(message);
}
public void Info(object message, Exception e)
{
this.logger.Info(message, e);
}
}
public class LogFactory
{
static LogFactory()
{
FileInfo configFile = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"Log.config");
log4net.Config.XmlConfigurator.Configure(configFile);
}
public static LogImplement GetLogger(Type type)
{
return new LogImplement(LogManager.GetLogger(type));
}
public static LogImplement GetLogger(string str)
{
return new LogImplement(LogManager.GetLogger(str));
}
}
</pre> 3、配置文件
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-2.0"/>
</configSections>
<log4net>
<root>
<appender-ref ref="ErrorLogFileAppender"/>
<appender-ref ref="WarningFileAppender"/>
<appender-ref ref="DebugLogFileAppender"/>
</root>
<!--記錄warning-->
<appender name="WarningFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\Warn.log"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="1MB"/>
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date] [%-5level] [%logger] - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN"/>
<param name="LevelMax" value="WARN"/>
</filter>
</appender>
<!--記錄錯誤-->
<appender name="ErrorLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\Error.log"/>
<appendToFile value="true"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="1MB"/>
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date] [%-5level] [%logger] - %message%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
<!--記錄調試日志-->
<appender name="DebugLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\debug.log"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="MaximumFileSize" value="1MB"/>
<param name="StaticLogFileName" value="true"/>
<param name="RollingStyle" value="Size"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%p] [%d{MM/dd/yyyy HH:mm:ss,fff}] [%t] [%c]- %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="DEBUG"/>
</filter>
</appender>
<!--調試模式,輸出日志到控制臺-->
<appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR"/>
<foreColor value="Red, HighIntensity"/>
<!--<backColor value="Green" />-->
</mapping>
<mapping>
<level value="DEBUG"/>
<foreColor value="Yellow, HighIntensity"/>
<backColor value="Green"/>
</mapping>
<layout type="log4net.Layout.PatternLayout">
<footer value="--------------------------------------------------------------------"/>
<param name="ConversionPattern" value="[%p] [%d{MM/dd/yyyy HH:mm:ss,fff}] [%t] [%c]- %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
其中, 表示異常文件超過1M大小就自動新增文件;表示異常文件的路徑;表示要支持的.net版本。至于其他屬性在使用中自己可以慢慢體會。
4、記錄異常
public class RecordLog
{
public static void RecordException(Exception e)
{
LogImplement log = LogFactory.GetLogger(typeof(RecordLog));
log.Error(e.Message + e.StackTrace);
}
}
</pre> 5、調用
static void Main(string[] args)
{
try
{
string test = "123tr";
int i = int.Parse(test);//制造一個異常
}
catch(Exception e)
{
RecordLog.RecordException(e);
}
}
</pre>
本文由用戶 mb78 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!