栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在log4j2中创建自定义RewritePolicy?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在log4j2中创建自定义RewritePolicy?

您的自定义重写策略应编码为log4j2插件。这使您可以在RewriteAppender中配置自定义RewritePolicy。

@Plugin(name = "InjectMarkerPolicy", category = "Core",        elementType = "rewritePolicy", printObject = true)public final class MarkerInjectorRewritePolicy implements RewritePolicy {    @Override    public LogEvent rewrite(final LogEvent event) {        final Marker marker = event.getMarker();        if (marker == null) return event;        // If there's a Marker, add it to the ThreadContextMap        // so the RoutingAppender can properly routes log messages        // event's context map is immutable, so need to make a copy...        Map<String, String> mdc = new HashMap<>(event.getContextMap());        mdc.put("_marker", marker.getName());        LogEvent result = new Log4jLogEvent(event.getLoggerName(), event.getMarker(), event.getLoggerFqcn(), event.getLevel(), event.getMessage(), event.getThrown(), mdc, event.getContextStack(), event.getThreadName(), event.getSource(), event.getTimeMillis());        return result;    }}

配置示例(TODO:为包属性设置正确的值):

<Configuration status="trace" packages="my.rewritepolicy.plugin.package">  <Appenders>    <Console name="STDOUT">      <PatternLayout pattern="[%-5level] %c{1.} %m%n"/>    </Console>    <Rewrite name="Rewrite">      <InjectMarkerPolicy />      <AppenderRef ref="STDOUT"/>    </Rewrite>  </Appenders>  <Loggers>    <Root level="trace">      <AppenderRef ref="Rewrite"/>    </Root>  </Loggers></Configuration>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号