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

在Glassfish上使用log4j2的多个项目

娄浩荡
2023-03-14

我有一个EAR项目,由3个模块/项目组成:WEB、EJB和JPA。在WEB项目中,我添加了log4j2用于日志记录。因此,我将log4j2.xml文件放入webcontent/web-inf/direcotry。

当我只部署一个项目(例如开发人员版本)时,所有工作都很好。然而,当im部署这两个项目时,它们都将日志记录到同一个文件(它始终是从首先部署的项目在log4j2中配置的文件)。我的Glassfish版本是3.1.2.2,Log4j2版本是2.0.2。

有谁知道怎么解决吗?

共有1个答案

唐涛
2023-03-14

log4j2手册提供了关于web应用程序配置的详细信息。

log4j2 jar文件是否也在webproject1/web-inf/lib和webproject2/web-inf/lib文件夹中(而不是在某个共享位置)?这样,log4j2类将由单独的webapp类加载器加载,并且它们可以具有单独的配置

 类似资料:
  • 这里的答案:https://stackoverflow.com/questions/7624895/how-to-use-log4j-with-multiple-classes#=是我找到的最好的答案。这已经是过去几年的想法了,现在有些事情已经不同了。 我的目标是在所有将消息打印到日志(控制台和文件)的java类中共享一个记录器。 我使用的是log4j2:http://logging.apache

  • 我有一个带有maven的java ee应用程序,当我构建项目然后部署在目标文件夹上生成的ear时,我试图注册到应用程序,所以我必须调用一个区域设置EJB会话(ConfigUser),我得到以下错误: 当我从netbeans部署时,它工作得很好,因为我知道项目的结构是在pom文件中的,如下所示: 这是jsp页面:

  • 我需要实现多个记录器和多个追加器。我的log4j2.xml如下所示: 现在,当我使用这个xml执行代码时,日志被写入最后一个日志文件commonres.log。我是Log4J的新手。如何只写入所需的日志文件? 编辑: 请帮忙。

  • 我们最近切换到了 Glassfish 3.1.2.2,并有几个 Web 应用程序打包为 war 文件。有时,这些应用程序所需的上下文根目录与文件名不同。 当我们使用Weblogic时,我们通过在Weblogic中声明上下文根来实现这一点。像这样的xml 我们注意到glassfish-web.xml中存在相同的标记,但是不管我们在那里定义什么,服务器总是将文件名确定为上下文根。 现在我们在 asad

  • 我们有一个使用Spring Boot编写的新项目,其中我们使用Log4j2进行日志记录。 问题是我们需要使用一个遗留库,我们拥有它,但我们不能改变;其他几个系统使用它,我们不能通过改变所有这些系统来扩大我们的范围。 当我们的项目运行时,它使用Log4j2记录的很好,但是当我们调用遗留库时,它会调用Log4j,从而抛出异常。 在我们使用log4j2的新应用程序中,有没有办法处理旧的log4j调用?

  • 我的项目由多个模块组成。每个模块都可以独立运行,并有单独的log4j2.xml 假设项目X由三个模块组成: 模块A具有log4j2。xml(包含记录器和附加器) 模块B具有log4j2。xml 模块C具有log4j2。xml 在集成模块时,我必须手动将每个模块的log4j2.xml中的记录仪和应用程序复制粘贴到项目特定的log4j2.xml文件中。 为了避免复制粘贴,我希望XInclude包含多个