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

Grails外部配置日志记录

颜瀚漠
2023-03-14

每当我部署一个外部化配置有错误的生产应用程序时,我都会在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初始化发生之前捕获这些消息?

共有2个答案

羊昊苍
2023-03-14

这位博主建议查看web。xml以确保首先列出log4j侦听器。Grails生成web。xml在战争创建过程中,但它可能值得一看。

宰父俊彦
2023-03-14

通过在$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文件: