C#使用log4net进行多日志文件的配置以及自定义路径的配置文件读取

        在使用log4net的时候,编写的配置文件,有时候我们可能需要放在其它路径下面,而是不是用默认的App.config,这时候,只需要在AssemblyInfo.cs里面添加一行代码即可:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "xxx.config",Watch = true)]

        上一篇博客我简单介绍了log4net的简单使用,链接地址https://blog.csdn.net/qq_41061437/article/details/97812731,但是在正常开发中,使用它不止这么简单,我们可能会根据日志的不同级别写入不同的文件当中。log4net有多种级别的日志记录,按照从高到低的顺序是:OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL,那这次来讲解一下配置文件怎么使用。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="ErrorAppender" />
      <appender-ref ref="InfoAppender" />
    </root>
    
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogError\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p  %n日志内容:%m%n%n" />
      </layout>
      <filter type="log4net.Filter.LeveRangeFilter">
          <param name="levelMin" value="ERROR"/>
          <param name="levelMax" value="ERROR"/>
      </filter>
    </appender>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogInfo\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMMdd&quot;.txt&quot;" />
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p  %n日志内容:%m%n%n" />
      </layout>
      <filter type="log4net.Filter.LeveRangeFilter">
          <param name="levelMin" value="INfo"/>
          <param name="levelMax" value="INFO"/>
      </filter>
    </appender>
  </log4net>
 
  
</configuration>

        这里只展示两种方式,如果需要,可以自己再添加相应的级别。

        那么如何在代码中进行调用呢?只需要几句代码就可以了,首先是读取配置文件:

private static readonly ILog loginfo = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType)

        在代码中使用的时候,只需要在需要的地方,调用相应的方法即可,比如要记录Info级别的,就使用loginfo.Info("正常信息"),如果要打印错误信息,就使用loginfo.Error("错误记录",new Exception("抛出异常了"))。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步:程序启动时读取log4net配置文件。 如果是CS程序,在根目录的Program.cs中的Main方法中添加: log4net.Config.XmlConfigurator.Configure(); 如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加: log4net.Config.XmlConfigurator.Configure(); 无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句: [assembly: log4net.Config .XmlConfigurator()] 也可以使用自定义配置文件,具体请参见4.4 关联配置文件。 第三步:修改配置文件。如果是CS程序,则在默认的App.config文件(没有新建一个)中添加内容;如果是BS程序,则添加到Web.config文件中,添加内容一样,这里不再列出。 App.config文件添加内容如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <root> <level value="WARN" /> <appender-ref ref="LogFileAppender" /> <appender-ref ref="ConsoleAppender" /> </root> <logger name="testApp.Logging"> <level value="DEBUG"/> </logger> <appender name="LogFileAppender" type="log4net.Appender.FileAppender" > <param name="File" value="log-file.txt" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header] "/> <param name="Footer" value="[Footer] "/> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="WARN" /> </filter> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> </log4net> </configuration> 第四步:在程序使用log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器 log.Info(DateTime.Now.ToString() + ": login success");//写入一条新log 这样就将信息同时输出到控制台和写入到文件名为“log-file.txt”的文件中,其中“log-file.txt”文件路径是当前程序运行所在目录;也可以定义为绝对路径配置如: <param name="File" value="C:/log-file.txt" />就写入C盘根目录下log-file.txt文件
C#使用 Log4Net 需要进行以下配置: 1. 下载 Log4Net 可以通过 NuGet 包管理器下载 Log4Net。在 Visual Studio 中,打开“工具”菜单下的“NuGet 包管理器”,搜索“Log4Net”,并安装最新版本。 2. 配置 Log4Net 在你的项目中添加一个名为“log4net.config”的文件。在该文件中,定义 Log4Net 配置。以下是一个简单的配置示例: ```xml <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="ConsoleAppender" /> </root> </log4net> ``` 3. 在代码中使用 Log4Net 在代码中使用 Log4Net 需要进行以下步骤: ```csharp using log4net; class Program { private static readonly ILog log = LogManager.GetLogger(typeof(Program)); static void Main(string[] args) { log.Debug("Debug message"); log.Info("Info message"); log.Warn("Warn message"); log.Error("Error message"); log.Fatal("Fatal message"); } } ``` 在上面的示例中,我们首先导入 Log4Net 命名空间。然后,我们定义了一个名为“log”的静态只读字段,该字段返回一个 ILog 实例。在 Main 方法中,我们使用 ILog 实例记录日志消息。 4. 运行代码 运行代码后,你应该会在控制台中看到日志消息的输出。 这是一个简单的 Log4Net 配置使用示例。你可以通过更改配置来满足你的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值