文档章节

Common.Logging log4net Common.Logging.Log4Net 配置

自然麻雀
 自然麻雀
发布于 2017/07/29 14:30
字数 392
阅读 30
收藏 0

Common.Logging+(log4net/NLog/)

common logging是一个通用日志接口,log4net是一个强大的具体实现,也可以用其它不同的实现,如EntLib的日志、NLog等。

Common.Logging可以通过修改配置,更换不同的日志实现类,而不需要修改任何代码。

 

.net 项目使用CommonLogging:

1、添加必要的程序集:Common.Logging.dll、Common.Logging.Core.dll、Common.Logging.log4net1215.dll、log4net.dll

其中需要特别注意Common.Logging.log4net1215.dll、log4net.dll的版本必须匹配,建议使用VS的NuGet添加引用,添加时有详细的说明。

2、写配置文件

在app.config的配置文件修改:在configSections中添加

<configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/>
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

在根目录添加:即在configuration添加如下信息:

<common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter,Common.Logging.Log4Net1215">
        
        <arg key="configType" value="FILE-WATCH" />
        <arg key="configFile" value="log4net.config" />
      </factoryAdapter>
    </logging>
  </common>

添加log4net.config文件,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <root>
    <level value="ALL"/>
    <appender-ref ref="RollingFileAppender" />
  </root>

  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
    </layout>
  </appender>

  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
    <param name="File" value="..\\Log\\" />
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyy-MM-dd.'log'"/>
    <param name="AppendToFile" value="true" />
    <param name="MaxSizeRollBackups" value="10" />
    <param name="MaximumFileSize" value="5MB" />
    <param name="RollingStyle" value="Date" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="时间:%date 线程名:[%thread] 消息等级:%-5level 日志器:%logger %ndc 类名:%C 方法名:%M 所在行:%line %n[message]%message %exception %newline" />

    </layout>
    <fileter type="log4net.Filter.LevelRangeFilter">
      <levelMin value="ERROR"/>
      <levelMax value="FATAL"/>
    </fileter>
  </appender>

</log4net>

在项目的AssemblyInfo.cs文件中添加:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

在使用的时候添加代码:

//添加引用:
using Common.Logging;

//代码
public static ILog logObj = Common.Logging.LogManager.GetLogger<PeiYangXiangFrm>();
logObj.Trace("This is a Trace Log!");

 

© 著作权归作者所有

自然麻雀
粉丝 5
博文 31
码字总数 4080
作品 0
济南
产品经理
私信 提问
使用Common.Logging+log4net规范日志管理【转载】

使用Common.Logging+log4net规范日志管理

BIGBOY_CHUANQI
2018/07/30
0
0
C# 日志输出工具库—log4net 安装、配置及简单应用

1、下载和安装 注意每次安装只是安装到本项目中,换了另一个项目需要再次安装和配置。 我使用的是Visual Studio 2013 社区版,在tools中找到NuGet包管理。 搜索log4net并点击安装。 首先进行...

不锈钢老鼠
2018/08/13
0
0
log4net配置自定义字段存入数据库

前言 以bs项目中引入log4net为例。log4net存入数据库提供了基本的(时间、线程、等级、message)字段。 但是实际日志场景中可能需要统计IP、用户ID或者其他业务相关的信息记入日志。 需要重写...

刘昌鑫
2018/12/06
47
0
一个简单的 C# 异步日志记录器

本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! Clearcove.Logging是一个非常简单的日志库,旨在通过直接许可条款满足大多数日志记录需求。 介绍 ...

码农网
2018/04/13
0
0
Log4Net 日志记录的实现

一、前言 在上一篇文章【(转载)非常完善的Log4net配置详细说明】介绍了Log4Net的配置说明,如果不知道的可以去看看,这里我们就介绍一下日志记录的实现,说得都比较基础,所以大神请绕过。 ...

园子的蜗牛
09/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库物理设计要做什么

选择合适的数据管理系统。 注意: 1、事务多时选Oracle。 2、SQLserver只支持在Windows下运行。 3、开发用的语言用的.net时,使用SQL server。 2、MySQL常用存储引擎 MySQL是开源数据库,只要...

sunnycat-薛定谔的猫
8分钟前
2
0
如何快速安全的插入千万条数据

前言 最近有个需求解析一个订单文件,并且说明文件可达到千万条数据,每条数据大概在20个字段左右,每个字段使用逗号分隔,需要尽量在半小时内入库。 思路 1.估算文件大小 因为告诉文件有千万...

ksfzhaohui
10分钟前
3
0
Could not build the precompiled application for the device.

Flutter报错:Could not build the precompiled application for the device. Xcode报错:Multiple commands produce '/Users/User/Library/Developer/Xcode/DerivedData/Runner-faibejedzvv......

RainOrz
20分钟前
3
0
UCOSII 任务调度笔记

ucosii是根据优先级进行调度的。对于任务,两种状态,就绪态和非就绪态,很多种情况下任务都会处于非就绪态,如:信号量,消息队列,邮箱,延迟,任务的挂起,调度锁等都会使程序进入非就绪态...

青春无极限
23分钟前
3
0
JS-4-if

本文转载于:专业的前端网站➼JS-4-if 流程控制结构 1 顺序结构 alert(10); alert(20); 2 分支结构(选择结构) * IF 2.1 if(条件) { 条件成立时执行的语句 } else { 条件不成立时执行的语句 ...

前端老手
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部