Log4Net自定义属性输出
来源:互联网 发布:情义我心知电影粤语 编辑:程序博客网 时间:2024/06/07 01:49
网上很多关于自定义输出的都需要定义新类,一个自定义属性要关联一个新类,要用的自定义字段要是很多,不是很方便。
好在Log4net是开源的,查看源码,发现Convert类中有一个Optain属性,用此属性定义一个公共类
namespace TestLog4net{ public class CustomLayout:log4net.Layout.PatternLayout { public CustomLayout() { this.AddConverter("Custom", typeof(CustomConvert)); } } public class CustomConvert : log4net.Layout.Pattern.PatternLayoutConverter { protected override void Convert(System.IO.TextWriter writer, log4net.Core.LoggingEvent loggingEvent) { if (!string.IsNullOrEmpty(Option)) { object obj = loggingEvent.MessageObject; if (obj != null) { PropertyInfo info = obj.GetType().GetProperty(Option); if (info != null) { object cusMsg = info.GetValue(obj, null); writer.Write(cusMsg); } } } } }}配置文件:
<!--定义输出到文件中--> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <!--定义文件存放位置--> <file value="D:/log4netfile.txt"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyyMMdd-HH:mm:ss"/> <layout type="TestLog4net.CustomLayout"> <conversionPattern value="%n %-5level %logger [%property{NDC}] - %Custom{LogName}%Custom{Info}%n"/> </layout> </appender>红色的为自定义类的属性名
public class LogInfo { [DataMember] public string LogName { get; set; } [DataMember] public string Info { get; set; } public override string ToString() { return string.Format("[LogName:{0}],[Info:{1}]", LogName, Info); } }
- Log4Net自定义属性输出
- Log4net 自定义错误输出
- 使用log4net记录日志到数据库(含有自定义属性)
- 使用log4net记录日志到数据库(含有自定义属性)
- Log4net中为未自定义属性设置值
- Log4net自定义信息(变量或属性或字段)存入数据库
- log4net输出log不起作用
- log4net输出xml日志
- log4net输出到PostgreSql
- log4net日志不输出
- log4net输出日志
- 【开发】log4net自定义配置
- Log4net自定义实现httpAppender
- log4net 自定义Appender
- log4net 自定义level
- 笔记:Newtonjson.Json自定义输出那些属性
- log4net 日志输出类型列举
- log4net输出错误行号配置
- view和activity的区别
- ubuntu 11.10 3D桌面特效及其窗口特效设置
- TWaver 3D 编辑器的使用(一)----设计3D场景以及数据绑定
- 特别响、非常近——BPMN2新规范与Activiti5
- keil 中常见的几种警告
- Log4Net自定义属性输出
- Activiti5 开发介绍1
- plsql常用函数
- linux 调试工具总结
- java GUI的组成
- 实验8 UART 通信实验
- mongod数据库的操作
- 并查集
- hibernate联合主键