Log4j2 在 WebLogic 12.2.1 中不起作用
Log4j2 not working in WebLogic 12.2.1
我正在尝试在 WebLogic 12.2.1 下的 Web 服务 运行 中添加 log4j 日志记录,但不知何故日志记录不起作用。
这是我的 WAR 文件的 WEB-INF\classes 中的 log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Properties>
<Property name="log-path">E:/MLM/MyDomain/servers/MyAppSrv01/logs</Property>
</Properties>
<Appender type="File" name="File" fileName="${log-path}/Services.log" filePattern="${log-path}/Services-%d{yyyy-MM-dd}.log">
<Layout type="PatternLayout">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Layout>
</Appender>
<Loggers>
<Root level="INFO">
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
这是我的网络服务代码片段:
@Path("TestWS")
@Consumes("text/plain")
@Produces("text/plain")
public class TestWS {
static private Logger logger = LogManager.getLogger();
public TestWS() {}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("webservicemethod1")
public String webservicemethod1(@Context HttpServletRequest request) {
logger.error("In webservicemethod1");
....
}
}
在我的 WAR 文件的 WEB-INF\lib\ 中,我有:
log4j-core-2.5.jar
log4j-api-2.5.jar
我可以使用客户端程序成功调用网络服务。但我根本看不到日志文件的创建。可能是什么问题?
提前致谢。
对于 WebLogic 12.1.3 及更高版本,我需要将以下内容添加到 weblogic.xml 文件中以使 log4j 正常工作。
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>org.slf4j</wls:package-name>
<wls:package-name>log4j</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
我认为这是由部署应用程序之前的 weblogic 加载 org.hibernate.validator.internal.util.Version
引起的,class 会在您想要设置 属性 替换之前过早初始化 log4j2 LogManager。
我正在尝试在 WebLogic 12.2.1 下的 Web 服务 运行 中添加 log4j 日志记录,但不知何故日志记录不起作用。
这是我的 WAR 文件的 WEB-INF\classes 中的 log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Properties>
<Property name="log-path">E:/MLM/MyDomain/servers/MyAppSrv01/logs</Property>
</Properties>
<Appender type="File" name="File" fileName="${log-path}/Services.log" filePattern="${log-path}/Services-%d{yyyy-MM-dd}.log">
<Layout type="PatternLayout">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Layout>
</Appender>
<Loggers>
<Root level="INFO">
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
这是我的网络服务代码片段:
@Path("TestWS")
@Consumes("text/plain")
@Produces("text/plain")
public class TestWS {
static private Logger logger = LogManager.getLogger();
public TestWS() {}
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("webservicemethod1")
public String webservicemethod1(@Context HttpServletRequest request) {
logger.error("In webservicemethod1");
....
}
}
在我的 WAR 文件的 WEB-INF\lib\ 中,我有:
log4j-core-2.5.jar
log4j-api-2.5.jar
我可以使用客户端程序成功调用网络服务。但我根本看不到日志文件的创建。可能是什么问题?
提前致谢。
对于 WebLogic 12.1.3 及更高版本,我需要将以下内容添加到 weblogic.xml 文件中以使 log4j 正常工作。
<wls:container-descriptor>
<wls:prefer-application-packages>
<wls:package-name>org.slf4j</wls:package-name>
<wls:package-name>log4j</wls:package-name>
</wls:prefer-application-packages>
</wls:container-descriptor>
我认为这是由部署应用程序之前的 weblogic 加载 org.hibernate.validator.internal.util.Version
引起的,class 会在您想要设置 属性 替换之前过早初始化 log4j2 LogManager。