LOG4NET开源日志dll引用流程,在net3.5中已经实践ok
一,在app.config中配置
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<!--站点日志配置部分-->
<log4net>
<root>
<!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
<!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录-->
<!--如果没有定义LEVEL的值,则缺省为DEBUG-->
<level value="ERROR"/>
<appender-ref ref="RollingFileAppender"/>
</root>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件名开头-->
<file value="c:\Log\TestLog4net.TXT"/>
<!--多线程时采用最小锁定-->
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置-->
<datePattern value="(yyyyMMdd)"/>
<!--是否追加到文件,默认为true,通常无需设置-->
<appendToFile value="true"/>
<!--变换的形式为日期,这种情况下每天只有一个日志-->
<!--此时MaxSizeRollBackups和maximumFileSize的节点设置没有意义-->
<!--<rollingStyle value="Date"/>-->
<!--变换的形式为日志大小-->
<!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义-->
<RollingStyle value="Size"/>
<!--每天记录的日志文件个数,与maximumFileSize配合使用-->
<MaxSizeRollBackups value="10"/>
<!--每个日志文件的最大大小-->
<!--可用的单位:KB|MB|GB-->
<!--不要使用小数,否则会一直写入当前日志-->
<maximumFileSize value="2MB"/>
<!--日志格式-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%t]%-5p %c - %m%n"/>
</layout>
</appender>
</log4net>
</configuration>
二,写一帮助类
public class LogHelper
{
//log4net日志专用
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
}
public static void SetConfig(FileInfo configFile)
{
log4net.Config.XmlConfigurator.Configure(configFile);
}
/// <summary>
/// 普通的文件记录日志
/// </summary>
/// <param name="info"></param>
public static void WriteLog(string info)
{
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
}
/// <summary>
/// 错误日志
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void WriteLog(string info, Exception se)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, se);
}
}
三、下载LOG4NET 并引用,搞定
Console.WriteLine("Begin Run");
XmlConfigurator.Configure();
Type type = MethodBase.GetCurrentMethod().DeclaringType;
ILog m_log = LogManager.GetLogger(type);
m_log.Debug("这是一个Debug日志");
m_log.Info("这是一个Info日志");
m_log.Warn("这是一个Warn日志");
m_log.Error("这是一个Error日志");
m_log.Fatal("这是一个Fatal日志");
Console.WriteLine("End");
Console.ReadLine();
最新文章
- quality center的使用简介
- hdfs 常用命令
- Ubuntu snappy is lame
- jquery ajax自定义分页组件(jquery.loehpagerv1.0)原创
- Vulkan Tutorial 16 Command buffers
- java.nio.file.NoSuchFileException
- 非关系数据库一Memcached
- 2019清明期间qbxt培训qaq
- Flash10下复制到剪切板的一种新方法
- 008-副文本编辑器UEditor
- hdu 5676 ztr loves lucky numbers 打表+二分
- ip route 命令详解
- SQL截取字符串分隔符中间部门的办法
- 前端构建工具Gulp使用总结
- linux du查询目录所占的磁盘空间
- java基础篇---JSP内置对象详解
- 解决 listView gridView 与ScrollView嵌套时的冲突
- sock基础编程介绍
- 【Unity笔记】第三人称相机跟随
- python中的函数(基础)
热门文章
- ECMAScript 6 入门学习笔记(持续更新)
- 第三百四十四天 how can I 坚持
- Python使用UUID库生成唯一ID(转)
- windows平台下安装python的setuptools工具
- C#实现office文档转换为PDF或xps的一些方法( 转)
- mysql编码详解
- c语言中用宏定义一个常量,数字后面带个U, L, F的含义
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- MEF(Managed Extensibility Framework)依赖注入学习
- java -X 这不是标准的选项只是为了获取帮助信息