我遇到了与日志记录相关的问题,其中应用程序A的日志消息被写入应用程序B的日志文件。
应用程序A和B在IBM WebSphere Application Server V9的同一实例上运行。
应用程序A正在使用spring框架和log4j2。
应用程序B正在使用Spring Boot和Logback。
应用程序A中的代码:
应用程序A中很少有Java类使用Java util记录器,很少使用log4j的记录器。 仅Java uti记录器消息被写入应用程序B的日志文件中。
import java.util.logging.Logger;
public class Utility {
private static final Logger LOGGER = Logger.getLogger(Utility.class.getName());
......
someMethod() {
LOGGER.info("some message from Application A");
}
......
应用B中的代码
此应用程序中的所有java类都使用记录器,如下所示
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
....
public class PNMapingController {
private static final Logger LOGGER = LoggerFactory.getLogger(PNMapingController.class);
.....
someMethod() {
LOGGER.info("some message from Application B");
}
.....
应用程序B登录配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<property name="LOG_FILE" value="${LOG_PATH}/JOB.log"/>
<property name="FILE_LOG_PATTERN" value="%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %logger{36}.%M - %msg%n"/>
<springProfile name="dev">
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<appender name="ROLLING-FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ROLLING-FILE"/>
</root>
</springProfile>
</configuration>
在应用程序属性文件中设置了LOG_PATH
因此,我可以在JOB.log(属于应用程序B)中看到来自应用程序A的日志消息,“来自应用程序A的某些消息”。