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

jboss as 7.1.1最终日志记录

方璞
2023-03-14

我有一只耳朵,它将战争作为一个次级部署。ear文件有一个META-INF目录,其中有一个jboss ejb客户端。xml文件,它只有一个ejb接收器元素和一个webscheduler。战争这场战争使用了commons日志api。罐子该应用程序作为7.1.1部署在jboss上。最终的我想使用apache log4j进行日志记录。所以我添加了一个jboss部署结构。ear的meta-inf目录中的xml

<jboss-deployment-structure>
<deployment>
    <!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.log4j"/>  
                <module name="org.jboss.logging"/>   
    </exclusions>
</deployment>
<sub-deployment name="a.war">
    <exclusions>
        <module name="org.apache.log4j"/>
     <module name="org.log4j"/>  
        <module name="org.jboss.logging"/>
    </exclusions>
</sub-deployment>
</jboss-deployment-structure>

我有一个公共日志。war的lib目录中的属性文件,其中包含以下内容,

    org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl

log4j。配置=/usr/share/wth/jboss/jboss-as-7.1.1/standalone/configuration/log4j。xml

除log4j-1.2.11外。jar库中没有任何其他日志框架jar。(如SLF4j等)。正如你所看到的log4j。xml位于上述属性描述的目录中。

问题是,当我启动jboss时,一些应用程序日志确实会写入log4j中描述的日志文件。xml(例如/a/b/c/srv.log),但同时日志也被写入默认的srv中。直接登录jboss日志。(jboss/standalone/log/srv.log)。

jboss不使用自己的日志记录并使用我提供的log4j配置,我缺少什么。

共有1个答案

简意
2023-03-14

您的jboss部署结构。xml应该如下所示:

<jboss-deployment-structure>
  <deployment>
    <exclusions>
      <module name="org.apache.log4j"/>
      <module name="org.apache.commons.logging"/>
    </exclusions>
  </deploymen>
  <sub-deployment name="a.war">
    <exclusions>
      <module name="org.apache.log4j"/>
      <module name="org.apache.commons.logging"/>
    </exclusions>
  </sub-deployment>
 </jboss-deployment-structure>

您应该在项目库目录中包含自己的JAR。例如:

EAR
|-- META-INF
|   |-- jboss-deployment-structure.xml
|   `-- MANIFEST.MF
|-- lib
|   |-- log4j.jar
|   `-- commons.logging.jar
`-- a.war

确保使用标志Dorg进行部署。jboss。像登录中。每次部署=false,否则日志记录可能无法工作。

例子:

$ cd $JBOSS_HOME/bin
$ ./standalone.sh -Dorg.jboss.as.logging.per-deployment=false
 类似资料:
  • 我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?

  • 问题内容: 我正在考虑将Redis用于Web应用程序日志记录目的。我用谷歌搜索,有人将日志转储到Redis队列/列表中,然后将计划的工作人员转储到磁盘中。 http://nosql.mypopescu.com/post/8652869828/another-redis-use-case- centralized-logging 我希望寻求理解,为什么不直接使用Redis持久化到磁盘?如果我分配了一

  • logging 模块自 2.3 版以来一直是 Python 标准库的一部分。在 PEP 282 中有对它的简洁描述。除了 基础日志教程 之外,这些文档是非常难以阅读的。 日志记录一般有两个目的: 诊断日志 记录与应用程序操作相关的日志。例如,当用户遇到程序报错时, 可通过搜索诊断日志以获得上下文信息。 审计日志 为商业分析而记录的日志。从审计日志中,可提取用户的交易信息, 并结合其他用户资料构成用

  • 主要内容:修改日志管理器配置每个初学者都很熟悉在有问题的代码中使用 System.out.println 方法在控制台打印消息,来帮助观察程序运行的操作过程。如果你使用  System.out.println 方法,一旦发现问题的根源,就要将这些语句从代码中删去。如果接下来又出现了问题,就需要再插入几个调用 System.out.println 方法的语句,如此反复,增加了工作量。 日志用来记录程序的运行轨迹,方便查找关键信

  • 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。 ASP.NET Core 应用程序 一旦使用了 AddDbContext 或 AddDbContextPool ,EF Core 就会自动集成 ASP.NET Core 的日志记录机制。因此,当使用 ASP.NET Core 的时候,日志记录的配置与 ASP.NET Core 帮助文档 中所描述的是一致的。 其他应用程序 EF Core

  • 配置 // 日志记录到文件 func LoggerToFile() gin.HandlerFunc { logFilePath := config.Log_FILE_PATH logFileName := config.LOG_FILE_NAME //日志文件 fileName := path.Join(logFilePath, logFileName)