点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨
版本:Hybris 6.6
我遇到了一个问题,我的新Log4j consoleAppender甚至没有在控制台中记录任何内容。 我实现了一个过滤器来记录每个请求的sessionId。 但是出于某种原因,即使它通过了过滤器,它也不会记录任何内容。
我在local.properties中做了这些配置:
log4j.rootLogger = INFO,控制台
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold =信息
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = [%d {ISO8601}]%X {sessionId}%p%c-%m%n
即使我将这些配置放在project.properties中,它也不起作用。
这是我的过滤器的代码:
公共类LogSessionIdFilter扩展了OncePerRequestFilter {
私有静态最终Logger LOG = Logger.getLogger(LogSessionIdFilter.class);
@Override
受保护的void doFilterInternal(HttpServletRequest请求,HttpServletResponse响应,FilterChain链)抛出ServletException,IOException {
尝试{
MDC.put(" sessionId",request.getSession()。getId());
LOG.warn(MDC.get(" sessionId"));
chain.doFilter(request,response);
}最后{
MDC.remove(" sessionId");
}
}
}
没用的" LOG.warn(" sessionId");" 的作品,我在控制台中看到一个条目。 但是我想在属性文件中配置模式,这是小事,不起作用。
有人可以帮忙吗?
将所有内容更新为log4j2之后,它便按照我的意愿进行了记录。 要映射值,请使用ThreadContext而不是MDC。
代码:
以及属性文件:
非常好!
仅供参考,hybris从6.0开始使用Log4J * 2 *。
所以您可能必须覆盖/更改默认的logj42控制台附加程序模式:
是的,我做到了。 但是它不会再次出现在日志文件中。 问题可能出在其他地方。
嗨Miroslav,
我认为这是您缺少
的情况log4j.appender.CONSOLE.Target = System.out
文档使用Log4J登录具有以下配置:
或者在属性前面加上
log4j2
此致,
Luke
我添加了" Target"属性,没有日志。 之后,我尝试按照您的建议使用log4j2,也没有使用日志。 那就必须是另一个问题。 我将进一步调查。
一周热门 更多>