我正在使用的Web应用程序为用户的数据完整性问题提供了更多日志。我想获得更多信息,如:
有没有办法让log4j能够记录上面的参数?换句话说,我想将这些参数与其他参数一起添加。那么log4j为此提供了一些方法吗?
我有log4j.properties:
log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n
log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n
log4j.rootLogger=INFO,Stdout
log4j.logger.org.apache.wicket=INFO
log4j.logger.org.apache.wicket.protocol.http.HttpSessionStore=INFO
log4j.logger.org.apache.wicket.version=INFO
log4j.logger.org.apache.wicket.RequestCycle=INFO
我有一个LogUtil.java
课程,我在其中记录了可用的信息。
修改 更清楚我的问题是什么:
在哪里可以找到这些参数以及如何在现有记录器中添加它们?
答案 0 :(得分:3)
这些信息可以从HttpServletRequest对象获取。 您可以使用MDC来完成此任务。
Log4j MDC (Mapped Diagnostic Context) Tutorial
您还可以通过扩展SMTPAppender
自定义Log4j电子邮件中发送的详细信息查看此博客,这应该会为您提供如何
答案 1 :(得分:3)
了解MDC。
在实际开始处理之前,您应该使用您提到的信息设置MDC。然后,您可以在日志消息中包含此类信息。
答案 2 :(得分:1)
检查HttpServletRequest类api,它提供了您需要的大部分信息。通过请求标题可以获得大量信息。
无论您在使用java代码进行登录,都可以使用上述值创建日志字符串。
另一个选项是使用MDC,如果你设置了东西,那么它将被自动记录。