log4net配置详解_log4net的配置和简单使用

a9cb4503d87aba2032ea3109159d06ee.png

1. 安装log4net

打开VS 然后 Tools -> NuGet Package Manager -> Manager NuGet Packages for Solution...

23006bdf7e5aac92f647a44e5d1e738a.png

浏览 搜索 log4net 然后选择要安装的项目, 点击 install 按钮

dd6e32d85df97ab9cfd62f08efc879c4.png

安装完毕以后, 在 Solution Explorer 里面可以看到新的文件packages.config, 可以查看安装的 log4net 版本

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="log4net" version="2.0.8" targetFramework="net45" />
</packages>

2. 配置 log4net

2.1 创建 log4net 配置文件 log4net.config

对 solution 右键 -> add -> add new items, 选择 configuration 文件, 文件名改为 log4net.config

688d6e0702257497b8dc6f64238fca59.png

log4net.config 文件右键, 打开 Properties, 修改 Copy to Output DirectoryCopy if newer.

63abe2c3af68cd38c72b0a4aa5b4a75b.png

2.2 配置 log4net.config 文件

打开 log4net.config 文件, 并修改为以下内容:

<?xml version="1.0" encoding="utf-8"?>
<log4net>
  <!-- 控制台日志配置 -->
  <appender name="Console" type="log4net.Appender.ConsoleAppender">
    <!-- 日志输出格式 -->
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
    </layout>
  </appender>
 
  <!-- 文件存储日志配置 -->
  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <!-- 保存文件的名称 -->
    <file value="D:log.log" />
    <appendToFile value="true" />
    <!-- 文件的编码方式 -->
    <param name="Encoding" value="UTF-8"/>
    <!-- 每个文件的大小 -->
    <maximumFileSize value="100KB" />
    <!-- 保存文件数量 -->
    <maxSizeRollBackups value="2" />
    <!-- 日志输出格式 -->
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%level %thread %logger - %message%newline" />
    </layout>
  </appender>
 
  <root>
    <level value="ALL" />
    <appender-ref ref="Console" />
    <appender-ref ref="RollingFile" />
  </root>
</log4net>

上述配置为 控制台输出 和 文件输出两种日志配置.

2.3 配置 AssemblyInfo.cs

打开Solution 的 ..PropertiesAssemblyInfo.cs, 在最后将 log4net.config 设置给 log4net:

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
 
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Common")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Common")]
[assembly: AssemblyCopyright("Copyright ©  2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
 
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
 
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("b2e1fd9f-3864-4b44-97ee-efa1d225ce53")]
 
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
 
// 指定log4net 的配置文件
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

3. 测试日志

打开 Program.cs 文件, 修改为以下内容:

namespace Common
{
    public class Program
    {
        private static ILog log = LogManager.GetLogger("Test");
 
        static void Main(string[] args) {
            log.Error("错误", new Exception("发生了一个异常"));//错误
            log.Fatal("严重错误", new Exception("发生了一个致命错误"));//严重错误
            log.Info("信息"); //记录一般信息
            log.Debug("调试信息");//记录调试信息
            log.Warn("警告");//记录警告信息
            Console.ReadKey();
        }
    }
}

运行该文件,得到的结果如下:

d997ed9e366e8e282941fd73f5a8ae74.png

同时在在我的电脑 D盘 生成了一个日志文件:

7cd0adc42bb5ff6260a7b3fc347fcff1.png

至此, log4net 配置完成.

后记

此文为 log4net 的添加配置 和 简单使用, 更详细的配置等后续使用时在做总结. 也可参考以下文章:

Configuration - Apache log4net​logging.apache.org Log4Net使用详解 - 技术江湖-小焕 - 博客园​www.cnblogs.com
c37ea1ec73d6a5591fb176838d1a17d2.png

欢迎关注我的公众号获取最新的文章, 或者 移步我的博客:

DevWiki​blog.devwiki.net
6c43767069defd0b0e67632c19cb22cc.png

e7eb477ed334c0ceb8202d0a1eba5236.png
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: log4net是一个用于.NET环境下的日志记录工具,可以帮助开发人员记录和管理应用程序的日志信息。log4net的配置是非常灵活且功能强大的,下面将详细介绍其配置的几个关键点。 1. Logger(日志记录器):Logger是log4net中最基本的组件,用于定义日志记录器的名称和级别。可以通过配置文件中的logger元素来定义不同的日志记录器,并为每个记录器指定不同的级别。 2. Appender(追加器):Appender是负责将日志信息输出到不同目标的组件,可以将日志输出到控制台、文件、数据库等不同的地方。log4net提供了多种类型的Appender,如ConsoleAppender、RollingFileAppender、AdoNetAppender等,可以根据实际需求选择合适的Appender。 3. Layout(布局):Layout用于定义日志信息的格式。可以通过配置文件中的layout元素来指定日志信息的格式,如时间、级别、线程号、消息等。log4net提供了多种内置的布局模式,也可以通过自定义布局来满足特定的需求。 4. Filter(过滤器):Filter用于对日志信息进行过滤,只输出符合条件的日志。可以通过配置文件中的filter元素来添加不同类型的过滤器,如LevelRangeFilter、LoggerMatchFilter等。过滤器可以根据日志级别、日志名称等条件进行过滤。 5. 日志配置文件:log4net的配置信息通常存放在一个独立的配置文件中,可以使用XML或者属性配置格式。通过配置文件,可以定义不同的logger、appender、layout和filter,以及它们之间的关系和配置参数。 总之,log4net的配置非常灵活,可以根据不同的需求进行定制和扩展。配置的核心是定义不同的logger、appender、layout和filter,并通过配置文件进行管理。通过合理的配置,可以满足不同应用程序的日志记录和管理需求。 ### 回答2: log4net是一个功能强大的日志记录工具,常用于开发中的日志记录和调试。它的配置方式相对来说比较复杂,需要在应用程序的配置文件中进行详细的设置。 首先,在配置文件中,需要先引入log4net命名空间,并设置配置文件的自动加载。接着,需要定义一个root节点,用于指定日志记录的级别和输出格式。例如,可以设置日志级别为DEBUG,表示会记录所有级别的日志,并且可以指定输出到控制台、文件或数据库等。 在根节点下,可以定义多个appender节点,分别对不同的日志进行输出。每个appender节点都需要设置一些基本属性,例如输出方式(ConsoleAppender、FileAppender等)、日志排除级别和日志格式等。可以根据不同的需求定义不同的appender节点。 另外,log4net还支持过滤器功能,可以对日志进行特定的过滤和警告。可以将过滤器节点添加到appender节点下,设置过滤器的类型和属性。例如,可以根据日志级别进行过滤,只记录满足条件的日志。 此外,还可以定义布局器(layout)来格式化日志输出的样式。可以在appender节点下设置布局器节点,指定日志输出的格式。log4net支持多种预定义的布局器,也可以自定义布局器,根据需求灵活设置。 最后,需要在应用程序启动时,调用log4net的配置方法,将配置文件中的设置应用到实际的日志记录中。这样就完成了log4net的配置。 总之,log4net的配置非常灵活,可以根据具体的需求设置不同的输出方式、过滤规则和输出格式。合理地配置log4net可以方便地进行日志记录和调试,提高开发效率。 ### 回答3: log4net是一个开源的日志管理工具,用于在应用程序中记录和管理日志信息。log4net的配置非常灵活,可以根据需求进行调整和定制。 首先,log4net的配置文件是一个XML文件,可以通过读取该文件来配置log4net。配置文件中有几个重要的部分,包括根节点log4net、appender等等。 在根节点log4net中,需要定义一个或多个appender,用于指定日志消息的输出位置。常用的appender有ConsoleAppender、RollingFileAppender、AdoNetAppender等。每个appender都可以设置不同的属性,例如输出格式、输出等级等。 除了appender,还需要定义logger,用于指定日志消息的记录级别和对应的appender。logger有多个级别,包括DEBUG、INFO、WARN、ERROR、FATAL。可以为每个logger设置一个或多个appender,这样就可以根据不同的级别将日志消息输出到不同的位置。 另外,log4net还支持使用过滤器来对日志消息进行过滤和处理。过滤器可以根据日志消息的属性进行判断,从而决定是否记录日志消息或者将其传递给下一个过滤器。 此外,log4net还提供了布局器(layout)的功能,用于格式化输出的日志消息。布局器可以定义输出日志消息的格式和内容,并可以通过占位符来引用日志消息的属性。 最后,在应用程序中使用log4net需要进行初始化和配置。可以通过在应用程序的入口处调用log4net.Config.XmlConfigurator.Configure方法来加载log4net的配置文件。配置文件的路径可以在方法的参数中指定。 总体来说,log4net的配置非常灵活和强大,能够满足各种复杂的日志管理需求。通过合理配置使用log4net,我们可以方便地记录和管理应用程序的日志信息,从而更好地进行问题追踪和排错。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值