关于使用log4net.dll记录日志的方法大全
来源:互联网 发布:金蝶科目初始数据录入 编辑:程序博客网 时间:2024/06/05 12:39
在软件系统中难免会用到日志记录的需求,接下来我将给大家详细介绍下Log4net写入到文件、sqlserver和oracle的方法。
首先,我们把Log4net.dll添加到引用中。
第二步,在config文件中编写log4net的相关配置,下面将详细介绍写入文件配置、写入sqlserver配置和写入oracle配置
1.文件记录
<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <appSettings> </appSettings> <log4net> <!--定义输出到文件中--> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <!--定义文件存放位置--> <file value="LogInfo.txt" /> <appendToFile value="true" /> <layout type="log4net.Layout.PatternLayout"> <!--每条日志末尾的文字说明--> <footer value="" /> <!--输出格式--> <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level - 描述:%message%newline" /> </layout> </appender> <appender name="LogFileAppender_Size" type="log4net.Appender.RollingFileAppender"> <file value="LogInfo.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="1000KB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level - 描述:%message%newline" /> </layout> </appender> <appender name="LogFileAppender_Date" type="log4net.Appender.RollingFileAppender"> <file value="LogInfo.txt" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <datePattern value="yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level - 描述:%message%newline" /> </layout> </appender> <root> <!--日志记录方式--> <appender-ref ref="LogFileAppender_Size" /> </root> </log4net></configuration>2.sqlserver记录
<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <appSettings> </appSettings> <log4net> <appender name="AdoNetAppender_SQLServer" type="log4net.Appender.AdoNetAppender"> <!--设置缓存区大小 1表明有一条日志就要写入 如果10就表示日志到达10条时一起写入 --> <bufferSize value="1" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <connectionString value="data source=192.168.0.108;initial catalog=RTData;integrated security=false;persist security info=True;User ID=sa;Password=sa" /> <commandText value="INSERT INTO LogInfo ([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> <appender-ref ref="AdoNetAppender_SQLServer" /> </root> </log4net></configuration>在配置文件connectionString 属性中配置好sqlserver的连接字符串,
还要在sqlserver数据库中建立一个跟配置文件中同表名、同表结构的日记表。
3.Oracle记录
<?xml version="1.0"?><configuration><configSections><section name="extnet" type="Ext.Net.GlobalConfig" requirePermission="false"/><section name="log4net" type="System.Configuration.IgnoreSectionHandler"/></configSections><appSettings><add key="ChartImageHandler" value="storage=file;timeout=20;"/></appSettings> <!-- 用log4net记录日志信息到Oracle数据库中 要在数据库中新建表 create table BASE_ERRORLOG( LOG_DATE DATE, MESSAGE VARCHAR2(4000)) --><log4net><appender name="AdoNetAppender_Oracle" type="log4net.Appender.AdoNetAppender"><connectionString value="Data Source=GS_DB;Persist Security Info=True;User ID=YPQ_SJ;Password=Sg58895168;Min Pool Size=5;Max Pool Size=50;"/><connectionType value="System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/><commandText value="INSERT INTO Base_ErrorLog (LOG_DATE,MESSAGE) VALUES (:log_date,:message)"/><bufferSize value="1"/><!--定义各个参数--> <parameter> <parameterName value=":log_date"/> <dbType value="DateTime"/> <layout type="log4net.Layout.RawTimeStampLayout"/> </parameter><parameter><parameterName value=":message"/><dbType value="String"/><size value="4000"/><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message"/></layout></parameter></appender><root> <appender-ref ref="AdoNetAppender_Oracle" /></root></log4net></configuration>在配置文件connectionString 属性中配置好oracle的连接字符串,
还要在oracle数据库中建立一个跟配置文件中同表名、同表结构的日记表。
具体使用那种记录方式,自己选定。
第三步,新建一个Logger.cs类
using System;using System.Reflection;using log4net;//注意下面的语句一定要加上,指定log4net使用.config文件来读取配置信息,如不指定配置文件路径,则按以下方式获取//如果是WebForm,则从web.config中读取相关信息
//ConfigFile是你写log4net配置的地方[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]namespace com.yitongyu.common.log{ /// <summary> /// 日志记录器 /// </summary> public static class Logger { private static ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); /// <summary> /// 获取当前 Ilog 对象 /// </summary> public static ILog GetILog { get { return log; } } /// <summary> /// 记录错误日志 /// </summary> /// <param name="message"></param> /// <param name="ex"></param> public static void Error(object message, Exception ex) { log.Error(message, ex); } /// <summary> /// 记录严重错误 /// </summary> /// <param name="message"></param> /// <param name="ex"></param> public static void Fatal(object message, Exception ex) { log.Fatal(message, ex); } /// <summary> /// 记录一般信息 /// </summary> /// <param name="message"></param> public static void Info(object message) { log.Info(message); } /// <summary> /// 记录调试信息 /// </summary> /// <param name="message"></param> public static void Debug(object message) { log.Debug(message); } /// <summary> /// 记录警告信息 /// </summary> /// <param name="message"></param> public static void Warn(object message) { log.Warn(message); } }}
第四步,调用日志记录方法
Logger.Erroe("错误信息",null);
- 关于使用log4net.dll记录日志的方法大全
- 关于使用log4net.dll记录日志的方法大全
- 使用log4net记录日志
- 使用Log4net记录日志
- 使用Log4net记录日志
- 使用Log4net记录日志
- 使用Log4net记录日志
- 使用Log4Net记录日志
- Log4net日志记录组件的使用详解
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- C#使用Log4Net记录日志
- 谁能给我共享一下web开发的一些资料啊
- Rules For JavaScript Library Authors
- Ctrl+C,Ctrl+Z,Ctrl+D
- c# 获取客户端的 mac
- 数据结构读书笔记
- 关于使用log4net.dll记录日志的方法大全
- 在ubuntu下源码编译安装 emacs24
- 向上扩展
- IOS笔试题
- jquery 调用后台方法
- 《C语言参悟之旅》-读书笔记(一)
- JavaScript 注入攻击
- 儿童引导服务 带来安全呵护
- 两条比较实用的mysql导入导出命令