简体   繁体   English

Log4j过滤器标记数据

[英]Log4j filter marker data

I use marker for inbound and outbound packets. 我将标记用于入站和出站数据包。 All packets prefixed by int id. 所有以int id为前缀的数据包。 Sometimes for debug purpopses i need also filter packets by id. 有时,对于调试目的,我还需要按ID过滤数据包。 How i can for example log packets prefixed with 3? 例如,我如何才能记录以3为前缀的数据包?

private static final Marker packets = MarkerManager.getMarker("Packets");

logger.debug(packets, "[IN:" + packetState + ":" + packet.getId() + "] " + packet.toString());

您可以使用RegexFilter执行此操作: http ://logging.apache.org/log4j/2.x/manual/filters.html#RegexFilter

您可以使用apache ThreadContext将id放在此处,然后通过约定Id:[%X {id}]在日志中检索映射,其中id是您在ThreadContext Map中放置的id。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM