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

Grails中的日志记录:使用Log4j2可重新加载的外部配置

戚侯林
2023-03-14
switch (Environment.current) {
   case Environment.PRODUCTION:
      log4jConfigurer(MethodInvokingFactoryBean) {
         targetClass = "org.springframework.util.Log4jConfigurer"
         targetMethod = "initLogging"
         arguments = ["classpath:ogc-log4j.xml", 30000]
      } 

   case Environment.DEVELOPMENT:
     log4jConfigurer(MethodInvokingFactoryBean) {
        targetClass = "org.springframework.util.Log4jConfigurer"
        targetMethod = "initLogging"
        arguments = ["classpath:log4j-dev.xml", 30000]
     }
}

由于某些原因,这种方法在Grails3.x中不起作用。我如何在Grails 3.3.3或Spring Boot中做到这一点(我想它应该能工作,因为Grails 3.x是基于Spring Boot的)?

共有1个答案

司徒英卓
2023-03-14

来自grails的3.3.3

而不是在Java代码中使用它。环境配置已移动到YML配置文件。

我们可以将不同的值传递给不同的环境,并更改log4j的配置

 类似资料:
  • 每当我部署一个外部化配置有错误的生产应用程序时,我都会在Tomcat日志中收到以下消息: 显然,外部化的配置是在log4j被正确初始化之前处理的,因此没有附加程序可以接受来自的消息。 有没有办法预先初始化log4j,以便在标准Grails log4j初始化发生之前捕获这些消息?

  • 我试图从log4j1更改为log4j2。我所做的: 已删除旧配置文件log4j。xml 创建了新的配置文件log4j2。xml 创建了jboss部署结构。xml 编辑的pom 环境:野蝇10 1 EAR 4 WAR文件中没有使用web.xml。以前的log4j配置日志在EAR中(仅) Log4j2配置文件 Jboss部署结构 新的maven依赖关系 我之前说过我在SLF4j中使用log4j1。这些

  • 我使用带有路由附加器和包装器的log4j2xml配置。我将传递不同的appender,以记录项目不同部分的不同文件。我的配置看起来像这样。 问题是,我在第二个路由中获得了外部库日志(那些没有附加程序的)和我的项目日志,尽管我只想要外部日志。

  • 假设我们构建了一个JavaSDK,不同的项目可以通过将其添加为类路径中的jar或添加为mavenpom.xml或gradle文件中的依赖项来使用它。当其他项目使用该库时,SDK中的日志在运行时不可见。我尝试使用SL4J,当其他项目使用它时,没有一个日志在运行时可见。我应该用log4j2吗?如果是,我应该在我的SDK中提供log4j配置 /properties文件吗?是否会在运行时从消费者库中提取属

  • 互联网上有许多帖子建议如何从logback迁移到log4j2进行Spring引导日志记录。 参考这个sof post-Spring Boot日志与log4j2-我已经配置我的项目使用log4j2。然后我添加了一些基本的log4j2.xml和log4j2.properties文件来测试。 但是在这些更改之后,我的项目无法进行任何日志记录。有人能帮我找出毛病吗? 项目代码可在github-https: