log4net修改数据库连接字符串和写自定义信息
来源:互联网 发布:大数据要什么学历 编辑:程序博客网 时间:2024/06/01 23:10
最近项目需要用log4net来写日志,因为整个平台式在sharepoint上,我们需要记录具体是哪个子站点发生的日志,因此需要再原来的log表里面添加一个自定义信息列。由于平台的安全性要求,我们需要对连接字符串加密。连接字符串的信息是在AdoNetAppender读取的,所以我们要扩展该类。而自定义消息我们需要扩展PatternLayout类。其实有关log4net的介绍网上已经很多了,如log4net.dll使用
具体的代码如下:
配置代码
<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections> <log4net> <logger name="MyLogger"> <level value="ALL"></level> <appender-ref ref="ADONetAppender"></appender-ref> </logger> <!--记录日志到数据库--> <appender name="ADONetAppender" type="ConsoleApp.CustAdoNetAppender"> <bufferSize value="100" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <connectionString value="data source=.;initial catalog=test;integrated security=false;persist security info=True;User ID=sa;Password=xxx" /> <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[CustomMessage]) VALUES (@log_date, @thread, @log_level, @logger, @message,@customMessage)" /> <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="@customMessage" /> <dbType value="String" /> <size value="4000" /> <layout type="ConsoleApp.CustomLayout"> <conversionPattern value="%CustomMessage" /> </layout> </parameter> </appender> </log4net></configuration>
SQL脚本如下:
CREATE TABLE [dbo].[Log] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [Date] [datetime] NOT NULL , [Thread] [varchar] (255) NOT NULL , [Level] [varchar] (20) NOT NULL , [Logger] [varchar] (255) NOT NULL , [Message] [varchar] (4000) NOT NULL , [CustomMessage] VARCHAR(max) NULL ) ON [PRIMARY]
在AssemblyInfo.cs文件中添加一句
[assembly: log4net.Config.DOMConfigurator(ConfigFile = "Log4Net.xml", Watch = true)]
调用代码:
ILog log = LogManager.GetLogger("MyLogger");
log.Info(new LogMessage { Message = "message", CustomMessage = "cust" });
运行结果:
0 0
- log4net修改数据库连接字符串和写自定义信息
- Log4net自定义信息存入数据库
- Log4net自定义信息存入数据库
- log4Net加入的自定义日志信息
- Log4net 自定义信息(字段)存入数据库
- Log4net 自定义信息(字段)存入数据库
- log4Net自定义header和footer内容换行
- 让log4net保存自定义对象信息到数据库中
- Log4net自定义信息(变量或属性或字段)存入数据库
- log4j 配置数据库连接池添加自定义信息
- .net 中数据库连接字符串怎么写
- log4j+数据库连接池添加自定义信息+自定义SQL
- 在自己写的formatName基础上,写个,将时间转化为自定义的输出字符串格式信息
- 使用Log4Net写日志
- log4net无法写日志
- LOG4NET写日志
- log4net写日志方法
- 查看/修改mysql数据库连接数、并发数相关信息
- 算法之统计一个8bit中1的个数
- poj 3067 树状数组
- linux syslogd服务
- Issues
- shell--let-expr
- log4net修改数据库连接字符串和写自定义信息
- SVN版本控制---zhang
- Maven实战学习笔记(聚合和继承)
- Qt插入数据库错误
- 2014 Apple WWDC
- 百度下拉框对我们seoer的启示不容忽视
- Anti-Screen Capture(Prevent Screen Captures)截屏与反截屏
- 大数的加减运算
- hdu 1711 Number Sequence