.net项目中使用log4net记录日志
2014-12-17 15:54
573 查看
项目中使用log4net记录日志
一、准备工作
log4net源码一份,或者生成的log4net.dll文件一份数据库中新建一张表,就叫LogCenter吧。
配置文件一份。
记录日志的方法一份。
二、开工--log4net.dll
log4net官方网站:编译好的log4net.dll文件,
将log4net.dll添加引用到项目中。
三、建表
--数据库创建表CREATETABLE[dbo].[LogCenter](
[Id][int]primarykeyIDENTITY(1,1)NOTNULL,
[Date][datetime]NOTNULL,
[Thread][varchar](255)NOTNULL,
[Level][varchar](50)NOTNULL,
[Logger][varchar](255)NOTNULL,
[Message][varchar](4000)NOTNULL,
[Exception][varchar](2000)NULL
)
四、添加配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | <? xml version="1.0"encoding="utf-8"?> < configuration > <!--这项配置必须放在configuration下面--> < configSections > < section name="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </ configSections > <!--log4net配置节点--> < log4net > < logger name="loginfo"> < level value="INFO"/> < appender-ref ref="AdoNetAppender_SqlServer"/> < appender-ref ref="InfoAppender"/> </ logger > <!--<root> <levelvalue="ALL"/> <appender-refref="AdoNetAppender_SqlServer"/> <appender-refref="InfoAppender"/> </root>--> < appender name="InfoAppender"type="log4net.Appender.RollingFileAppender"> < param name="File"value="Log\\INFO\\"/> < param name="AppendToFile"value="true"/> < param name="MaxFileSize"value="10240"/> < param name="MaxSizeRollBackups"value="100"/> < param name="StaticLogFileName"value="false"/> < param name="DatePattern"value="yyyyMMdd".txt""/> < param name="RollingStyle"value="Date"/> < layout type="log4net.Layout.PatternLayout"> < param name="ConversionPattern"value="日志时间:%dMessage:%mException:%exception%newline"/> </ layout > </ appender > < appender name="AdoNetAppender_SqlServer"type="log4net.Appender.AdoNetAppender"> <!--BufferSize为缓冲区大小,只有日志记录超5条才会一块写入到数据库--> < bufferSize value="0"/> <!--2.0这是对应sql2008如是2000或2005另外配置--> < connectionType value="System.Data.SqlClient.SqlConnection,System.Data,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" /> <!--连接数据库字符串ADO.Net类型的连接--> < connectionString value="DataSource=SHOPEX-SH-A0449\FANYONG;InitialCatalog=OnlineShop;UserID=sa;Password=sa;" /> <!--插入到表Log--> < commandText value="INSERTINTOLogCenter([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.PatternLayout"> < conversionPattern value="%date{yyyy'-'MM'-'ddHH':'mm':'ss'.'fff}"/> </ layout > <!--<layouttype="log4net.Layout.RawTimeStampLayout"/>--> </ parameter > < parameter > < parameterName value="@thread"/> < dbType value="String"/> < size value="255"/> <!--LogComponent是类所在的命名空间,MyLayout是自定义属性所在的类,这是我们自己要写的部分,将在下面介绍。--> < 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 > </ log4net > </ configuration > |
五、记录日志的实现代码
Implementation:usingSystem;
namespaceLog4netTet
{
///<summary>
///日志操作类
///</summary>
publicclassLogWrite
{
privateLogWrite()
{
//构造函数设置配置文件
SetConfig();
}
//创建一个log4net对象
//
privatestaticreadonlylog4net.ILoglogInfo=log4net.LogManager.GetLogger("loginfo");
privatestaticboolIsLoadConfig=false;
//设置配置文件
//
privatestaticvoidSetConfig()
{
log4net.Config.XmlConfigurator.Configure();
}
///<summary>
///记录异常信息
///</summary>
///<paramname="info">错误提示信息</param>
publicstaticvoidWriteLog(stringinfo)
{
if(!IsLoadConfig)
{
SetConfig();
IsLoadConfig=true;
}
if(logInfo.IsInfoEnabled)
{
logInfo.Info(info);
}
}
publicstaticvoidWriteLog(stringinfo,Exceptionex)
{
if(!IsLoadConfig)
{
SetConfig();
IsLoadConfig=true;
}
if(logInfo.IsErrorEnabled)
{
logInfo.Error(info,ex);
}
}
}
}
六、测试代码
因为实现代码LogWrite类中是静态方法,所以调用的时候不用实例化,简单调用即可。protectedvoidbtnLog4net_Click(objectsender,EventArgse){//普通日志消息
Log4netTest.LogWrite.WriteLog(“测试消息");
//异常信息
Log4netTest.LogWrite.WriteLog(“报异常了",newException(“这是异常信息啊"));
}
相关文章推荐
- 在.net网站项目中使用log4net 记录日志到sqlserver 数据库
- asp.net Web项目中使用Log4Net进行错误日志记录
- asp.net Web项目中使用Log4Net进行错误日志记录
- .NET日志记录框架Log4Net使用总结
- 在.Net程序中使用log4net记录日志(示例)
- asp.net Web项目中使用Log4Net进行错误日志记录
- 在项目中使用log4net记录日志
- 在.Net程序中使用log4net记录日志(示例)-转
- asp.net Web项目中使用Log4Net进行错误日志记录
- 在类库项目中使用log4net(RollingFileAppender)记录日志
- 在.Net程序中使用log4net记录日志(示例)
- log4net 使用access记录日志 log4net实例 log4net示例 log4net实战
- 使用log4net完成程序异常日志记录(使用SQLite数据库记录和普通文本记录)
- 如何使用log4net记录日志
- 使用log4net记录日志到数据库(含有自定义属性)
- log4net日志记录类使用方法
- 使用log4net记录日志到数据库(含有自定义属性)
- ASP.NET中使用log4net记录日志
- 使用log4net完成程序异常日志记录(使用SQLite数据库记录和普通文本记录)
- 使用log4net记录日志