我有一只耳朵,它将战争作为一个次级部署。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配置,我缺少什么。
您的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)