我在我的应用程序中使用Log4j2作为记录器。我希望自定义记录器消息,并将登录用户的名称作为模式布局的一部分,例如:2021-06-01 03:29:06.636[CURRENT_USER]Warn1---[nio-8002-exec-7]com.zaxxer.hikari.pool.poolbase:hikaripool-1--未能验证连接org.PostgreSQL.jdbc.pgConnection@6813ce6c(此连接已关闭)。可以考虑使用较短的maxLifetime值。
我认为登录用户指的是活动事务的数据库用户。如果可以将其放入MDC变量中(有多种访问JDBC用户名的方法,请选择最适合您需要的方法),则可以通过PatternLayouts%x
指令访问该值,例如%x{jdbcUserName}
。
我想指定特定格式的日志记录时间戳%d{YYYY-MM-dd HH: mm: ss. SSS},但是我操作模式,时间戳显示为2015-10-19 00:47:15,423。 指定%d{ISO8601}或%d{ABSOLUTE}正在生效。我想知道当指定自定义模式时,如何选择时间戳格式。 如果我想将逗号分隔符改为句号,有没有办法做到这一点?
对于我的应用程序,我需要HTML布局来记录事件。时间中的时间列以毫秒为单位出现,但我需要它的格式是dd-mm-yyyy:hh:mm:ss.sssz。我该怎么做?因为log4j2的HTML布局不支持pattern属性。所以我不能为时间设定新的模式。
我一直在尝试新的Log4j2。从有关迁移的文档来看,XML模式/DTD规范似乎已被废除。 这似乎是倒退了一步。当然,应该可以将XML Schema或DTD与我的相关联,以帮助编写它并进行验证。我在留档中找不到任何有用的东西,也没有找到XML Schema或DTD本身。 那么:在Log4j2中,我应该如何将XML模式与Log4j2.XML相关联?
问题内容: 我正在尝试使用Log4j2的新RoutingAppender路由基于MDC(Log4j2中的ThreadContext)的不同日志。我想做的是以下几点: 如果MDC映射具有$ contextId->追加到$ contextId附加器(特定日志) 如果MDC没有$ contextId->追加到主附加程序(常规日志) 我想使用标记中的通配符模式来实现此目的,然后使用for contextI
我正在尝试使用Log4j2的新RoutingAppender来基于MDC(Log4j2中的ThreadContext)路由不同的日志。我想做的是以下几点: null 我希望使用标记中的通配符模式来实现这一点,然后使用for contextId(${ctx:contextId})中的key参数进行筛选,并使用main appender的默认值(没有key参数),但是我不知道哪个值是通配符。 任何帮助