log4j2,yml - ThreadContext 值为空
log4j2,yml - ThreadContext value is empty
我正在使用 spring-boot-starter-log4j2:2.1.2.RELEASE 和 log4j2.yml 文件。
在我的申请代码中,
private static final Logger logger = LogManager.getLogger(LoggingAspect.class);
...
ThreadContext.put("hostname", InetAddress.getLocalHost().getHostName());
...
logger.error("message");
和log4j2.yml文件,
Appenders:
RollingRandomAccessFile:
- name: Alerts
filename: ...
filePattern: ...
PatternLayout:
Pattern: "%d{yyyy-MM-dd HH:mm:ss} %-5p %X{hostname}:%m%n"
在日志文件中,主机名丢失,而时间戳和消息按预期显示。
我试过 ${ctx:hostname}、$${ctx:hostname} 但到目前为止没有任何效果。
请指导我。
谢谢!
%X{hostname} 仅当您将主机名值添加到 ThreadContext 时才有效。但你不需要那样做。 Log4J 会自动为您填充一个主机名变量。所以只需在您的模式中指定 ${hostName} 即可。
我正在使用 spring-boot-starter-log4j2:2.1.2.RELEASE 和 log4j2.yml 文件。 在我的申请代码中,
private static final Logger logger = LogManager.getLogger(LoggingAspect.class);
...
ThreadContext.put("hostname", InetAddress.getLocalHost().getHostName());
...
logger.error("message");
和log4j2.yml文件,
Appenders:
RollingRandomAccessFile:
- name: Alerts
filename: ...
filePattern: ...
PatternLayout:
Pattern: "%d{yyyy-MM-dd HH:mm:ss} %-5p %X{hostname}:%m%n"
在日志文件中,主机名丢失,而时间戳和消息按预期显示。 我试过 ${ctx:hostname}、$${ctx:hostname} 但到目前为止没有任何效果。
请指导我。
谢谢!
%X{hostname} 仅当您将主机名值添加到 ThreadContext 时才有效。但你不需要那样做。 Log4J 会自动为您填充一个主机名变量。所以只需在您的模式中指定 ${hostName} 即可。