log4j日志格式加入自定义字段信息

在使用log4j日志的时候,有时需要在日志中加入自定义字段信息,例如在日志中加入登录用户的信息等,这时就可以使用org.apache.log4j.MDC来实现该功能:

1、在Action的方法中,直接使用    MDC.put("username",getUserInfo().getName());  //getUserInfo()获取登录用户信息

2、在log4j的配置文件中,  %d{yyyy/MM/dd HH:mm:ss.sss}     [%X{username}]      [%-5p]     %c  -  %m%n

日志文件结果:

         2013/11/29 18:00:25.025 [test] [ERROR] com.test.TestAction    //红色test即为加入的用户信息

注意:红色部分必须保持一致

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要添加自定义字段并将其保存到数据库,您可以使用 Log4Net 的 `AdoNetAppender`。下面是一些步骤: 1. 首先,您需要定义一个带有自定义字段日志类。例如,您可以创建一个名为 `CustomLog` 的类,并在其中定义定义属性,如下所示: ```csharp public class CustomLog { public string Message { get; set; } public string CustomField { get; set; } } ``` 2. 接下来,您需要在 Log4Net 配置文件中添加 `AdoNetAppender`。在 `AdoNetAppender` 中,您可以指定要将哪些字段保存到数据库中。您可以通过以下方式在配置文件中添加 `AdoNetAppender`: ```xml <log4net> <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <connectionString value="Data Source=YOUR_DATASOURCE;Initial Catalog=YOUR_DATABASE;Integrated Security=True" /> <commandText value="INSERT INTO Logs (Message, CustomField) VALUES (@message, @customField)" /> <parameter> <parameterName value="@message" /> <dbType value="String" /> <size value="4000" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message" /> </layout> </parameter> <parameter> <parameterName value="@customField" /> <dbType value="String" /> <size value="255" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%property{CustomField}" /> </layout> </parameter> </appender> <root> <level value="DEBUG" /> <appender-ref ref="AdoNetAppender" /> </root> </log4net> ``` 在上述配置中,我们指定了要将消息和自定义字段保存到名为 `Logs` 的表中。我们还为每个字段定义了一个参数,并且为自定义字段指定了 `conversionPattern`,它会将 `CustomField` 属性中的值转换为字符串并将其保存到数据库中。 3. 最后,您需要将自定义字段添加到日志记录中。您可以使用以下代码将自定义字段添加到日志记录中: ```csharp var log = new CustomLog { Message = "This is a log message", CustomField = "Custom field value" }; log4net.LogicalThreadContext.Properties["CustomField"] = log.CustomField; log4net.LogManager.GetLogger(typeof(Program)).Info(log.Message); ``` 在上述代码中,我们首先创建了一个 `CustomLog` 对象,并设置了 `Message` 和 `CustomField` 属性的值。然后,我们将 `CustomField` 属性的值添加到 `LogicalThreadContext.Properties` 集合中。最后,我们使用 `LogManager` 记录日志。 以上就是添加自定义字段并将其保存到数据库中的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值