每当我部署一个外部化配置有错误的生产应用程序时,我都会在Tomcat日志中收到以下消息:
log4j:WARN No appenders could be found for logger (org.codehaus.groovy.grails.commons.cfg.ConfigurationHelper)
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
显然,外部化的配置是在log4j被正确初始化之前处理的,因此没有附加程序可以接受来自ConfigurationHelper
的消息。
有没有办法预先初始化log4j,以便在标准Grails log4j初始化发生之前捕获这些消息?
这位博主建议查看web。xml
以确保首先列出log4j
侦听器。Grails生成web。xml
在战争创建过程中,但它可能值得一看。
通过在$CATALINA\u BASE\lib\log4j中创建一个文件,我终于能够启用初始化前日志记录。属性
:
log4j.rootLogger=WARN, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{MMM dd, yyyy hh:mm:ss aa} %c%n%p: %m%n
这允许将初始消息记录到控制台。在默认的Tomcat配置中,它们将被记录到$CATALINA\u BASE\logs\CATALINA。输出
文件。
Grails初始化确实用Config.groovy
或外部配置文件中的设置覆盖了这些初始设置。
我的外部配置文件权限不正确,无法加载。
由于某些原因,这种方法在Grails3.x中不起作用。我如何在Grails 3.3.3或Spring Boot中做到这一点(我想它应该能工作,因为Grails 3.x是基于Spring Boot的)?
我有Spring Boot应用程序在Gradle与Liquibase变更集。 此代码是多模块应用程序,在六边形体系结构中具有大约四个模块。 并且对于医生数据部署模块,资源文件夹结构如下所示: 我的问题是我想把配置和日志文件放在代码之外,我怎么能从代码中外部化这些文件。 我想以2种方式运行代码,如下所示: > 我想将我的代码作为 Jar 文件运行,并希望在运行 jar 时传递这些配置和日志回传文件,
我在两个问题上需要你的帮助: 我怎样才能使这两个特性得到满足呢? 感谢您的帮助:)
更新:我添加了一个logback-spring.xml,它在嵌入式tomcat上运行良好,但在外部tomcat上就不行了(它不创建文件)
问题内容: 如何配置OpenEJB日志记录格式?这就是我现在在日志中看到的内容: 我想禁用消息,并更改其他消息的格式。中的更改无效。 问题答案: 这是我为使事情正常运行所做的工作: 现在工作正常。这是我的: 这是: 现在,由于大卫的支持,我可以在测试期间微调OpenEJB的日志记录:)
我想按照这里的描述设置用于日志记录的Jetty-http://www.eclipse.org/jetty/documentation/current/configuring-jetty-request-logs.html 但上线过程以错误结束: 我的码头网。WEB-INF中的xml具有以下配置: 我做错了什么? 我用下一个命令编译并运行WAR文件: