文档章节

log4net快速部署的4个步骤

墙头草
 墙头草
发布于 2012/01/31 15:17
字数 804
阅读 692
收藏 5
第一步:配置config文件   
为了方便管理,把log4net的配置文件从web.config中分离,新建一个名为log4net.config的文件,内容如下:
<?xml version="1.0"encoding="UTF-8"?>
<log4net debug="false">

<!--按日期分割日志文件 一天一个-->
<appender name="LogFileAppenderByDate"type="log4net.Appender.RollingFileAppender">

<!--是否续写-->
<param name="AppendToFile"value="true"/>
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="LockingModel"value="log4net.Appender.FileAppender.MinimalLock"/>
<param name="StaticLogFileName"value="true"/>
<!--保存路径-->
<param name="File"value="F:\Log\\"/>
<param name="DatePattern"value="yyyy-MM-dd.LOG"/>
<param name="StaticLogFileName"value="false"/>
<param name="RollingStyle"value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern"value="时间:%d %n级别:%level %n类名:%c%n文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n"/>
</layout>
</appender>

<!--按日志容量分割日志文件 10KB一个-->
<appender name="LogFileAppenderBySize"type="log4net.Appender.RollingFileAppender">

<!--是否续写-->
<param name="AppendToFile"value="true"/>
<!--最小锁定模型以允许多个进程可以写入同一个文件-->
<param name="LockingModel"value="log4net.Appender.FileAppender.MinimalLock"/>

<param name="StaticLogFileName"value="true"/>

<!--按照文件的大小进行变换日志文件-->
<param name="RollingStyle"value="Size"/>
<param name="File"value="LogData\\log.txt"/>
<!--单个文件最大数量 好像只有在 按Size分割时有效-->
<param name="MaximumFileSize"value="10KB"/>
<!--保留的log文件数量 超过此数量后 自动删除之前的   好像只有在 按Size分割时有效-->
<param name="MaxSizeRollBackups"value="2"/>

<param name="StaticLogFileName"value="false"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern"value="发生时间:%d %n事件级别:%level %n相关类名:%c%n程序文件:%F 第%L行%n日志内容:%m%n-----------------------------------------%n%n"/>
</layout>
</appender>
<!--记录日志到数据库-->
<appender name="AdoNetAppender"type="log4net.Appender.AdoNetAppender">
<bufferSize value="100"/>
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<connectionString value="data source=GAS-HECHEN;initial catalog=dsc141051_db;integrated security=false;persist security info=True;User ID=sa;Password=000000"/>
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"/>
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter>
<parameter>
<parameterName value="@thread"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread"/>
</layout>
</parameter>
<parameter>
<parameterName value="@log_level"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level"/>
</layout>
</parameter>
<parameter>
<parameterName value="@logger"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger"/>
</layout>
</parameter> 胸围
<parameter>
<parameterName value="@message"/>
<dbType value="String"/>
<size value="4000"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message"/>
</layout>
</parameter>
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="2000"/>
<layout type="log4net.Layout.ExceptionLayout"/>
</parameter>
</appender>
<root>
<level value="INFO"/>
<!--启用按日期分割-->
<appender-refref="LogFileAppenderByDate"/>
<!--启用按容量分割-->
<!--<appender-refref="LogFileAppenderBySize"/>-->
<!--启用保存到数据库-->
<!--<appender-refref="AdoNetAppender"/>-->
</root>
</log4net>
复制代码    内容主要配置日志的输出方式:
1、按日期生成 
2、按文件大小 生成 
3、把日志保存到数据库文件。最后root节点是设置启动哪种方式来保存日志,以及设置日志的级别第二步:把Log4Net.config文件添加到项目启动项       
在website或winform 项目下的Global.asax.cs类的Application_Start()方法下添加加载日志配置文件代码
voidApplication_Start(objectsender, EventArgs e)
{
//Code that runs on application startup
log4net.Config.XmlConfigurator.ConfigureAndWatch(newFileInfo(Server.MapPath("/Log4Net.config")));
}
复制代码第三步:在类库里添加日志帮助类LogHelper       
添加辅助类的目的:
1、方便各个类库及项目直接调用,不用每个项目里都添加log4net的引用                               
2、为了支持根据自己配置的日志输出格式和输出方式 输出日志(configPath 用来传入日志配置路径)
第四步:在项目里应用日志          
ILog log = LogHelper.GetInstance();
log.Fatal("Fatal");
复制代码或者
ILog log = LogHelper.GetInstance(configPath);
log.Fatal("diaoxw");

© 著作权归作者所有

墙头草
粉丝 16
博文 145
码字总数 117172
作品 0
卢湾
私信 提问
加载中

评论(1)

JollyRoger
JollyRoger
我想问一下,你上边那个“胸围”的链接是干嘛的。。。。
ASP.NET MVC 使用 Log4net 记录日志

Log4net 介绍 Log4net 是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版。我们可以控制日志信息的输出目的地。Log4net中定义了多种日志信息输出模式。它可以根据需要将日志输出到控制...

AALMIX
2018/08/20
0
0
基于.NetCore和ABP框架如何让Windows服务执行Quartz定时作业

该系列文章启发自 How to: Create a Windows Service that schedules jobs, logs and is configurable by means of dependency injection 阅读优秀的项目源码,是非常值得推崇的学习方式。阅...

repeatedly
05/06
0
0
【Azure Services Platform Step by Step-第11篇】Windows Azure兰州拉面馆-日志与队列的使用

在第9篇里,为了便于大家理解,我把Windows Azure的环境比喻成了"Azure兰州拉面馆"。本篇我们继续沿用这个比喻,讲讲Windows Azure中的队列(Queue Storage)与日志的使用。 Queue Storage在【...

技术小阿哥
2017/11/26
0
0
用log4net快速构建asp.net 异常日志

log4net是一个非常完善的日志组件. 有着强大的可配置性. 有助于提高开发效率 。log4net是apache组织开发的日志组件, 同其姐妹log4j一样, 是一个开源项目. 可以以插件的形式应用在你的系统中....

罗圣杰
2012/09/20
522
0
log4net进阶手札(一):概况

日志是程序开发人员所必需掌握地一项技术,它为程序的健壮性和稳定性打下基础,不仅能减轻开发人员的调试工作,也为系统管理人员提供方便。 log4net的设计初衷就是为.net程序开发人员,在开发...

wbf961127
2017/11/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

反编译9.png图片还原

本文链接:https://blog.csdn.net/a1140778530/article/details/10528507 经常反编译apk文件找资源,9.png的文件处理起来很麻烦。 最近使用Ant自动编译打包app时,从别处搜罗来的9.png文件导...

shzwork
3分钟前
0
0
Shell脚本应用 – for、while循环语句

一、for循环语句 在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。例如:根据通讯录中的姓名列表创建系统账号等情况。 当面对各种...

linux-tao
3分钟前
0
0
RPA风潮下企业财务工作模式的变革

RPA(机器人流程自动化)在财务领域的应用,正给企业财务带来前所未有的改变。 前RPA时代,财务领域面临的痛点 在RPA机器人应用之前,企业财务工作进程的推进,主要通过财务人员人工操作或信...

UiBot
8分钟前
0
0
Hive之命令行修改表注释

最近遇到一个需求,在不重建表的情况下,修改表的注释,hive有没有类似关系型数据库的SQL命令来修改呢,找了下,亲测有效,如下List-1 List-1 hive>use your_schemahvie>ALTER TABLE tabl...

克虏伯
8分钟前
0
0
是什么,它的作用是什么

在HTML文档的首部往往会有这么一句话<!DOCTYPE html>,许多时候我们忽视了它的存在,它实际上是一个声明,告诉浏览器用哪种HTML版本的规范来解读HTML文档。 尽管我们不给出这句声明浏览器照样...

前端老手
14分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部