当前位置: 首页 > 知识库问答 >
问题:

Log4j2在WebLogic 12.2.1中不工作

常英纵
2023-03-14

我正在尝试在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>

这是我的Web服务代码的片段:

@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

我可以使用客户端程序成功调用web服务。但我根本没有看到日志文件被创建。有什么问题?

提前感谢。

共有2个答案

冀鸿才
2023-03-14

我认为这是由网络逻辑加载组织.Hibernate.验证器.内部.util.版本在部署应用程序之前引起的,该类会在您要设置属性替换之前过早地初始化log4j2 LogManager。

尤俊誉
2023-03-14

对于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>
 类似资料:
  • 我尝试配置log4j2以在gradle项目中使用MongoDB,当我在Eclipse和测试中运行时,它工作得很好,但是当我生成一个jar并启动它时,我得到一个错误: 2018-08-13 09:30:11,534主要错误找不到MongoDb的插件类型2018-08-13 09:30:11,548主要错误找不到MongoDb的插件2018-08-13 09:30:11,597主要错误无法为元素NoS

  • 我正在使用log4j 2.4,并尝试将转换为,但是似乎不能使用log4j2.properties。 null 虽然以下文档https://logging.apache.org/log4j/2.x/manual/configuration.html#属性 清楚地表明 属性配置文件支持广告客户、monitorInterval、name、packages、shutdownHook、status 我也尝试

  • 根据这里,Log4j2应该与Tomcat7.0.47一起工作。我用的是TomEE Plus 7.0.47。 SLF4J-API-1.7.5.jar log4j-api-2.0-rc1.jar log4j-core-2.0-rc1.jar log4j-SLF4j-impl-2.0-rc1.jar 如果我将配置状态更改为TRACE,我可以看到我的配置文件被拾取,并且配置按预期进行。我还可以看到MBea

  • 我正在通过log4j2(版本2.5)为部署到Wildfly 8.2服务器的ear应用程序(包括ejb和web应用程序)使用slf4j。 这就是父POM的外观: 模块的pom.xml是: 然后我放置了log4j2。xml到ear的META-INF文件夹中 在所有这些和应用程序部署之后,什么都没有发生,没有错误,也没有生成日志文件, 我认为Wildfly日志子系统可能会干扰它。所以我添加了jboss部

  • 我有一个maven项目,它使用log4j2进行日志记录。我想覆盖RootLogger的模式。 这是我的log4j2。属性文件: 这是我的pom。log4j的xml文件: 我这样叫我的记录仪: 我的配置有两个问题。第一个是根记录器不使用我的ConsolePender(警告等以默认格式显示),在记录错误时,我只得到第一行,而不是整个堆栈跟踪)。

  • 我使用的是log4j2。Web3.0容器中的xml是8。5台服务器。我在类路径中有两个jar文件。xml文件也位于WEB-INF/classes/resources/log4j2中。xml。我还在网上做了一个记录。xml文件(不确定我们是否需要它)。低于错误。 SystemErr R ERROR StatusLogger找不到log4j2配置文件。使用默认配置:只将错误记录到控制台。 添加了log