log4net部分配置说明
第一步:
添加并应用Log4net.dll。然后在Web.config文件中添加下面的配置局
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
- </configSections>
第二步:
新建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="d:\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="log.txt" />
- <!--单个文件最大数量 好像只有在 按Size分割时有效-->
- <param name="MaximumFileSize" value="200KB"/>
- <!--保留的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="1" />
- <!--缓冲大小-->
- <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
- <connectionString value="Data Source=.\SQLEXPRESS;Initial Catalog=CVDS;User ID=sa;Password=sasa" />
- <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-ref ref="LogFileAppenderByDate" />
- <!--启用按容量分割-->
- <!--<appender-ref ref="LogFileAppenderBySize" />-->
- <!--启用保存到数据库-->
- <!--<appender-ref ref="AdoNetAppender" />-->
- </root>
- </log4net>
第三步:
在Global.asax文件中的Application_Start事件中添加如下代码:
- protected void Application_Start(object sender, EventArgs e)
- {
- // Code that runs on application startup
- log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(Server.MapPath("Log4Net.config")));
- }
第四步:调用LOG4net 写日志
- protected void Button2_Click(object sender, EventArgs e)
- {
- ILog logs = LogManager.GetLogger(typeof(TEST));
- logs.Fatal("Excption:这里就是要提示的LOG信息");
- }
也可以通过写一个LogHelper.cs类进行封装:
- using System;
- using System.Collections.Generic;
- using System.Web;
- using log4net;
- namespace SBIT.Web.Class
- {
- /// <summary>
- /// 日志辅助类
- /// </summary>
- public class LogHelper
- {
- private static ILog log;
- private static LogHelper logHelper = null;
- /// <summary>
- /// 初始化
- /// </summary>
- /// <returns></returns>
- public static ILog GetInstance()
- {
- logHelper = new LogHelper(null);
- return log;
- }
- /// <summary>
- /// 初始化
- /// </summary>
- /// <param name="configPath"></param>
- /// <returns></returns>
- public static ILog GetInstance(string configPath)
- {
- logHelper = new LogHelper(configPath);
- return log;
- }
- /// <summary>
- /// 构造函数
- /// </summary>
- /// <param name="configPath"></param>
- private LogHelper(string configPath)
- {
- if (!string.IsNullOrEmpty(configPath))
- {
- log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
- log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(configPath));
- }
- else
- {
- log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
- }
- }
- }
- }
通过封装类写日志的方法如下:
- private static readonly ILog logs = LogHelper.GetInstance(); //LogManager.GetLogger(typeof(TEST));
- protected void Button2_Click(object sender, EventArgs e)
- {
- logs.Fatal("Excption:这里就是要提示的LOG信息");
- }
log4net部分配置说明的更多相关文章
- log4net一些配置说明
<configuration> <configSections> <section name="log4net" type="System. ...
- log4net详细配置说明
原文地址:http://blog.sina.com.cn/s/blog_671486bc01011rdj.html 1.概述 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记 ...
- C# log4net相关配置说明
添加相关文件到工程 链接: https://pan.baidu.com/s/1o83Juo6 密码: inkg 下载附件, 把里的log4net.dll 和 log4net.config 复制到工程目 ...
- 也用 Log4Net 之将日志记录到数据库的配置 (一)
也用 Log4Net 之将日志记录到数据库的配置 (一) 前段时间我一直想做一个通用一点的日志记录系统,可以便于不同的业务组调用进行日志记录及分析.本来打算着自己下手写一个,后面发现各业务组可能会需 ...
- Log4Net 日志记录的实现
一.前言 在上一篇文章[(转载)非常完善的Log4net配置详细说明]介绍了Log4Net的配置说明,如果不知道的可以去看看,这里我们就介绍一下日志记录的实现,说得都比较基础,所以大神请绕过. 二.L ...
- Log4Net 之将日志记录到数据库的配置 (一)
原文:Log4Net 之将日志记录到数据库的配置 (一) 前段时间我一直想做一个通用一点的日志记录系统,可以便于不同的业务组调用进行日志记录及分析.本来打算着自己下手写一个,后面发现各业务组可能会需要 ...
- C# 日志的配置流程
1. 下载log4net.dll文件 http://download.csdn.net/detail/abc456456456456/7653857 2. 项目中引用此dll 3. appconfig ...
- log4net自定义扩展及配置说明
log4net文件保存配置我就不说太多了,网上一大把的,数据库配置其实网上也有,只是我第一次按照网上的配置没有跑通,我就说下数据库配置需要注意的地方吧. 下面是一个log4net的数据库代码配置 pu ...
- log4net其中layout节点的配置说明
其中layout节点的配置说明: %m(message):输出的日志消息: %n(newline):换行: %d(datetime):输出当前语句运行的时刻: ...
随机推荐
- 3.开发Java消息驱动bean实例代码
java消息服务(JMS)是用于访问企业消息系统的开发商中立的API.企业消息系统可以协助应用软件通过网络进行消息交互.应用程序A发送一条消息到消息服务器的某个目的地(Destination),然后消 ...
- java之多线程 二
线程的生命周期: 当线程被创建并被启动时,它既不是一启动就进入了执行状态,在线程的生命周期中,它要经过new(新建),就绪(Runnable),运行(Running),阻塞(Blocked),dead ...
- Andorid 反编译App
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23564065 开发的过程中,有时候可能会去使用别的app里面的图片,参考布局甚至 ...
- android第一行代码-6.自定义控件的实现
0.假设一个应用中标题栏控件都是共用的,如果每个activity都需要设置button,绑定方法,那代码就会很臃肿.那我们可以自定义控件,然后继承这个控件就行了. 自定义控件为TitleLayout, ...
- Linux 进程间通讯详解六
ftok()函数 key_t ftok(const char *pathname, int proj_id); --功能:创建系统建立IPC通讯 (消息队列.信号量和共享内存) 时key值 --参数 ...
- IO(七)----转换流
输入字节流的转换流:InputStreamReader 是字节流通向字符流的桥梁. 输出字节流的转换流:OutputStreamWriter 可以把输出字节流转换成输出字符流 . 是符流通向字节流 ...
- LeetCode-70-Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- 你真的理解Java的按引用传递吗?
首先我们来看下面这段代码: public class Test1 { String a = "123"; public static void change(Test1 test) ...
- canvas链式弹性运动
上一课我学习了相对于鼠标为目标点的弹性运动,这次就学习了如何以上一个球为目标点的弹性运动,这次的函数比较复杂,首先分成了如下几个函数,首先定义了一个球的model,之后添加了4个球,在加载中调用了动画 ...
- 大图居中,以1920px为例
<div style="overflow: hidden; position: relative;"> <img src="img.jpg" ...