前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# 日志管理框架:Common.Logging和log4net

C# 日志管理框架:Common.Logging和log4net

作者头像
用户9127601
发布2022-01-13 08:56:28
1.6K0
发布2022-01-13 08:56:28
举报
文章被收录于专栏:dotNET编程大全dotNET编程大全

01

DLL引用

‍common logging是一个通用日志接口框架,log4net是一个强大的具体实现框架. common logging可以把输出连接到其他非log类上, 如EntLib的日志、NLog等‍‍‍‍‍‍‍‍‍‍‍‍‍

项目中需要引入的DLL: Common.Logging.dll

Common.Logging.Core.dll

Common.Logging.Log4Net1213.dll log4net.dll

Common.Logging.log4net1213.dll和log4net.dll的版本需要匹配

以上几个库直接从NUGET上点击安装Common.Logging.log4net1213.dll,其它的几个库会自动作为依赖项目安装都程序集下,如下图

02

配置说明

将项目的app.config文件修改如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1213">
        <arg key="configType" value="INLINE" />
      </factoryAdapter>
    </logging>
  </common>
  <log4net>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <param name="File" value="log.txt"/>
      <param name="datePattern" value="MM-dd HH:mm"/>
      <param name="AppendToFile" value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
  </log4net>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
</configuration>

简要说明:

①. <arg key="configType" value="INLINE" /> : 这个表示log4net的配置直接写在配置文件里

如果配置文件写在其它地方,可以改成

<arg key="configType" value="FILE-WATCH" />

<arg key="configFile" value="~/log4net.config" />

以上配置表示将log4net的配置放到单独的文件中

②一个root日志记录器,log4net只允许一个root日志记录器,用于做全局日志输出;

代码语言:javascript
复制
 <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>

其中:<level value="ALL" />表示记录器会将所有级别的日志提交给这里配置的附加器

这里配置了一个附加器:LogFileAppender(配置文件中的appender节点)

附加器(appender)可以定义多个,它只是一个声明,是否使用还是要看日志记录器是否引用了。没有配置appender(附加器)将不会输出日志

03

用法举例

定义:其中T为当前类名称

运行结果:

代码语言:javascript
复制
 private static readonly Common.Logging.ILog logger = Common.Logging.LogManager.GetLogger<T>();

  logger.Info($"Enter [this].");
  logger.Info($"Leave [this].");

参考链接: https://www.cnblogs.com/heys/p/5787123.html https://www.shuzhiduo.com/A/QV5ZYko7Jy/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 dotNET编程大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01
    • DLL引用
    • 02
      • 配置说明
      • 03
        • 用法举例
        相关产品与服务
        日志服务
        日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档