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));
        }
    }

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>

其中, <maximumFileSize value="1MB"/>表示异常文件超过1M大小就自动新增文件;<file value="log\Warn.log"/>表示异常文件的路径;<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>表示要支持的.net版本。至于其他属性在使用中自己可以慢慢体会。
4、记录异常

 public class RecordLog
    {
        public static void RecordException(Exception e)
        {
            LogImplement log = LogFactory.GetLogger(typeof(RecordLog));

            log.Error(e.Message + e.StackTrace);
        }
    }

5、调用

       static void Main(string[] args)
        {
            try
            {
                string test = "123tr";

                int i = int.Parse(test);//制造一个异常
            }
            catch(Exception e)
            {
                RecordLog.RecordException(e);
            }
        }

运行后,异常文件的位置如图:

记录异常:

详细工程下载:
http://download.csdn.net/detail/yysyangyangyangshan/4857624

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# log4net是一个优秀的第三方日志框架。通过引用log4net的dll并配置一些基本参数,开发者可以很容易地将日志信息输出到各种不同的目标,例如文本、数据库、Windows日志、邮件、内存缓冲区等目标。 在你提供的代码,我们可以看到log4net的使用。首先,你需要在程序集配置log4net,使用XmlConfigurator特性指定配置文件的路径和扩展名,并设置Watch属性为true,以便在配置文件发生更改时重新加载配置。 然后,你可以在需要记录日志的地方使用log4net的日志输出功能。在Utils命名空间下的Logger类,有三个方法可供使用: 1. WriteInfo(string info)方法用于记录正常日志信息。它会将传入的信息输出到控制台,并且如果允许信息记录,则使用loginfo来记录信息。 2. WriteError(string error)方法用于记录错误日志信息。它会将传入的错误信息输出到控制台,并且如果允许错误记录,则使用logerror记录错误信息。 3. WriteError(string info, Exception ex)方法用于记录带有异常信息的错误日志。它会将传入的信息输出到控制台,并且如果允许错误记录,则使用logerror记录信息和异常。 在Log4netTest命名空间下的Program类,我们可以看到Logger类的使用示例。在Main方法,我们可以看到调用了Logger.WriteInfo和Logger.WriteError方法来记录日志信息。 总结起来,C# log4net是一个方便易用的日志框架,可以帮助开发者将日志信息输出到各种不同的目标。通过配置log4net和调用Logger类的方法,开发者可以轻松记录正常日志和错误日志,并且可以记录带有异常信息的错误日志。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值