Grails Log4J未登录正在生产 [英] Grails Log4J Not Logging In Production

查看:96
本文介绍了Grails Log4J未登录正在生产的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Grails 1.3.7应用程序,并且正在尝试在配置中为生产设置log4j。 log4j设置在开发中很好,但我无法获得任何可用于生产的内容。我正在尝试制作滚动文件,但我无法显示任何内容。我甚至在信息级别有配置,这样我就可以确保某些事情能够通过。我没有在服务器上的tomcat日志中看到任何感兴趣的东西。任何想法?

  log4j = {
def catalinaBase = System.properties.getProperty('catalina.base')
if(!catalinaBase)catalinaBase ='。'//以防万一
def logDirectory =$ {catalinaBase} / logs

root {infostdout,roll ,errors}

//记录所有的错误级别
info'org.apache。',
'org.tomcat。',
' grails.app',
'org.acegisecurity',
'org.codehaus.groovy.grails.web.servlet',//控制器
'org.codehaus.groovy.grails.web .pages',// GSP
'org.codehaus.groovy.grails.web.sitemesh',// layouts
'org.codehaus.groovy.grails.web.mapping.filter',// URL映射
'org.codehaus.groovy.grails.web.mapping',// URL映射
'org.codehaus.groovy.grails.commons',//核心/类加载
' org.codehaus.groovy.grails.plugins',//插件
'org.codehaus.groovy.grails.orm.hiberna te',// hibernate集成
'org.springframework',
'org.hibernate'
warn'org.mortbay.log'
warn'grails.app'

appenders {
console name:stdout,layout:pattern(conversionPattern:%d {yyyy-MMM-dd HH:mm:ss,SSS} [%t]%c%x %n%-5p%m%n)
文件名:errors,文件:pps-errors.log,layout:pattern(conversionPattern:%d {yyyy-MMM-dd HH:mm :ss,SSS} [%t]%c%x%n%-5p%m%n)
appender new org.apache.log4j.DailyRollingFileAppender(name:roll,datePattern:''。' yyyy-MM-dd,文件:pps-rolling.log,layout:pattern(conversionPattern:%d {yyyy-MMM-dd HH:mm:ss,SSS} [%t]%c%x%n %b%m%n))

environments {
生产{
文件名:prod-errors,文件:$ {logDirectory} / pps-errors .log.toString(),layout:pattern(conversionPattern:%d {yyyy-MMM-dd HH:mm:ss,SSS} [%t]%c%x%n%-5p%m%n)
appender new org.apache.log4j.D aileRollingFileAppender(name:prod-roll,datePattern:'.yyyy-MM-dd,file:$ {logDirectory} /pps-errors-daily.log.toString(),layout:pattern(conversionPattern: %d {yyyy-MMM-dd HH:mm:ss,SSS} [%t]%c%x%n%-5p%m%n))
}
}


environments {
development {

debug stdout:'org.hibernate.SQL',
'org.hibernate.transaction'// ,
//'org.hibernate.cache'
// trace stdout:'org.hibernate.type'
}
test {
root {errorstdout ,roll,errors}
}
生产{

root {
infoprod-roll,prod-errors,stdout ,roll,errors
}

info'org.apache。',
'org.tomcat。',
'grails.app' ,
'org.acegisecurity',
'org.codehaus .groovy.grails.web.servlet',//控制器
'org.codehaus.groovy.grails.web.pages',// GSP
'org.codehaus.groovy.grails.web.sitemesh ',//布局
'org.codehaus.groovy.grails.web.mapping.filter',// URL映射
'org.codehaus.groovy.grails.web.mapping',// URL映射
'org.codehaus.groovy.grails.commons',//核心/类加载
'org.codehaus.groovy.grails.plugins',//插件
'org.codehaus。 groovy.grails.orm.hibernate',// hibernate集成
'org.springframework',
'org.hibernate'
}
}

调试'grails.app.task'
// grails =debug
// StackTrace =错误,错误

//additivity.StackTrace = false
}

编辑:

卡塔利娜.tomcat6中的.out文件包含以下内容:




log4j:WARN无法为记录器
(org.springframework.web.context.ContextLoader)找到appender。 log4j:WARN请
正确初始化log4j系统。


第二次编辑:



我在下面的Burt之后做了一个最小配置:

  log4j = { 
String logDirectory =$ {System.getProperty('catalina.base')?:'。'} / logs

info'org.apache。',
' org.tomcat。',
'grails.app',
'org.acegisecurity',
'org.codehaus.groovy.grails',
'org.springframework',
'org.hibernate'
warn'grails.app'

appenders {
文件名:errors,file:$ {logDirectory} / pps- errors.log,
layout:pattern(conversionPattern:commonPattern)
appender new DailyRollingFileAppender(
name:roll,datePattern:'.yyyy-MM-dd,
文件:$ {logDirectory} / pps-rolling。日志,
layout:pattern(conversionPattern:commonPattern))

文件名:prod-errors,文件:$ {logDirectory} /pps-errors.log,
layout:pattern(conversionPattern:commonPattern)
appender new DailyRollingFileAppender(
name:prod-roll,datePattern:'.yyyy-MM-dd,
file: $ {logDirectory} /pps-errors-daily.log,
layout:pattern(conversionPattern:commonPattern))
}

root {
infoprod-滚动,产品错误,滚动,错误
}
}

我仍然在tomcat中收到相同的消息,但仍然没有发生日志记录。有什么我需要做的,以设置tomcat以这种方式登录?



编辑3:
从应用程序信息输出。这没有我的自定义appender,导致我相信这是问题所在。但是,当我以开发模式运行应用程序时,我可以验证日志文件实际上是否已创建:

 < log4j :configuration xmlns:log4j =http://jakarta.apache.org/log4j/debug =false> < appender name =stacktraceLogclass =org.apache.log4j.FileAppender> 
< param name =filevalue =/ home / devon / Documents / SynaSync / Projects / ProjectPointSpread / Source / trunk / target / stacktrace.log/>
< param name =namevalue =stacktraceLog/>
< layout class =org.apache.log4j.PatternLayout>
< param name =conversionPatternvalue =%d [%t]%-5p%c {2}%x
- %m%n/>
< / layout> < /附加器> < appender name =stdoutclass =org.apache.log4j.ConsoleAppender>
< param name =namevalue =stdout/>
< layout class =org.apache.log4j.PatternLayout>
< param name =conversionPatternvalue =%d [%t]%-5p%c {2}%x
- %m%n/>
< / layout> < /附加器> < logger name =StackTraceadditivity =false>
< appender-ref ref =stacktraceLog/> < /记录器> < logger name =grails.app>
< level value =WARN/> < /记录器> < logger name =grails.app.task>
< level value =DEBUG/> < /记录器> < logger name =org.acegisecurity>
< level value =INFO/> < /记录器> < logger name =org.apache。>
< level value =INFO/> < /记录器> < logger name =org.codehaus.groovy.grails.commons>
< level value =INFO/> < /记录器> < logger name =org.codehaus.groovy.grails.orm.hibernate>
< level value =INFO/> < /记录器> < logger name =org.codehaus.groovy.grails.plugins>
< level value =INFO/> < /记录器> < logger name =org.codehaus.groovy.grails.web.mapping>
< level value =INFO/> < /记录器> < logger name =org.codehaus.groovy.grails.web.mapping.filter>
< level value =INFO/> < /记录器> < logger name =org.codehaus.groovy.grails.web.pages>
< level value =INFO/> < /记录器> < logger name =org.codehaus.groovy.grails.web.servlet>
< level value =INFO/> < /记录器> < logger name =org.codehaus.groovy.grails.web.sitemesh>
< level value =INFO/> < /记录器> < logger name =org.hibernate>
< level value =INFO/> < /记录器> < logger name =org.springframework>
< level value =INFO/> < /记录器> < logger name =org.tomcat。>
< level value =INFO/> < /记录器> <根>
< level value =INFO/>
< appender-ref ref =stdout/> < /根> < / log4j的:结构>

编辑4:我仍然在登录生产时遇到问题。现在,当我使用下面的日志记录配置并以调试模式运行时,我可以正确地查看app-info工具中的所有appender。但是,当我构建生产代码时,app-info显示将生成的log4j.xml非常空白:



新配置:

  log4j = {
String logDirectory =$ {System.getProperty('catalina.base')?:'。'} /日志

//由于某些原因,'appenders'部分必须先放在第一位,并将所有内容搞砸了!也许它只是
//需要在root
appenders {
console name:stdout,layout:pattern(conversionPattern:%d {yyyy-MMM-dd HH:mm: ss,SSS} [%t]%c%x%n%-5p%m%n)
文件名:errors,文件:pps-errors.log,layout:pattern(conversionPattern: %d {yyyy-MMM-dd HH:mm:ss,SSS} [%t]%c%x%n%-5p%m%n)
appender new org.apache.log4j.DailyRollingFileAppender name:roll,datePattern:'.yyyy-MM-dd,file:pps-rolling.log,layout:pattern(conversionPattern:%d {yyyy-MMM-dd HH:mm:ss, SSS} [%t]%c%x%n%-5p%m%n))

}


root {infostdout, roll,errors}
//记录所有的错误级别
info'org.apache。',
'org.tomcat。',
'grails。 app',
'org.acegisecurity',
'org.codehaus.groovy.grails.web.servlet',//控制器
'org.codehaus.groovy.grails.web.pages ',// GSP
'org.codehaus.groovy.grails.web.sitemesh ,//布局
'org.codehaus.groovy.grails.web.mapping.filter',// URL映射
'org.codehaus.groovy.grails.web.mapping',// URL映射
'org.codehaus.groovy.grails.commons',//核心/类加载
'org.codehaus.groovy.grails.plugins',//插件
'org.codehaus.groovy .grails.orm.hibernate',// hibernate集成
'org.springframework',
'org.hibernate'
warn'grails.app'
}

在Prod中输出log4j.xml:


 < log4j:configuration xmlns:log4j =http://jakarta.apache.org/log4j/debug = 假 > 
< logger name =Test>
< level value =ALL/>
< / logger>
< root>
< level value =DEBUG/>
< / root>
< / log4j:配置>


解决方案

不幸的是,您无法添加 environments 在任意位置阻塞,并且一般来说log4j配置不能做得非常干燥,因为它必须在一个闭包中进行。这是我认为你得到的:

  import org.apache.log4j.DailyRollingFileAppender 

字符串commonPattern =%d {yyyy-MMM-dd HH:mm:ss,SSS} [%t]%c%x%n%-5p%m%n
environments {
development {
log4j = {
info'org.apache。',
'org.tomcat。',
'org.acegisecurity',
'org.codehaus.groovy。
'org.springframework',
'org.hibernate'
warn'grails.app'
debug'org.hibernate.SQL',
' org.hibernate.transaction'
}
}
测试{
log4j = {
root {
错误stdout
}

info'org.apache。',
'org.tomcat。',
'org.acegisecurity',
'org.codehaus.groovy.grails',
'org.spring框架',
'org.hibernate'
警告'grails.app'
}
}
生产{

log4j = {
String logDirectory =$ {System.getProperty('catalina.base')?:'。'} / logs

info'org.apache。',
'org .tomcat。',
'grails.app',
'org.acegisecurity',
'org.codehaus.groovy.grails',
'org.springframework',
'org.hibernate'
warn'grails.app'

appenders {
文件名:errors,文件:$ {logDirectory} / pps-errors .log,
layout:pattern(conversionPattern:commonPattern)
appender new DailyRollingFileAppender(
name:roll,datePattern:'.yyyy-MM-dd,
文件:$ {logDirectory} /pps-rolling.log,
layout:pattern(conve rsionPattern:commonPattern))

文件名:prod-errors,文件:$ {logDirectory} /pps-errors.log,
layout:pattern(conversionPattern:commonPattern)
appender new DailyRollingFileAppender(
name:prod-roll,datePattern:'.yyyy-MM-dd,
file:$ {logDirectory} / pps-errors-daily。日志,
layout:pattern(conversionPattern:commonPattern))
}

root {
infoprod-roll,prod-errors,roll ,错误
}
}
}
}

我删除了'org.mortbay.log',因为我怀疑你使用的是Jetty - 如果你是这样的话,就把它放回原处。此外'grails.app'列在 info warn 下。我从prod中删除了stdoutappender,因为它会转储到catalina.out,并且您已经配置了文件记录器。

app-info 插件有一个功能,它将对可能用于配置等效日志记录配置的XML进行反向工程,如果您正在使用传统的log4j.xml方法。这并不确切,但应该非常接近。我发现它对调试类似这样的日志记录问题非常有用,因为即使你没有使用XML文件语法,你也可以比较 Config.groovy 设置和XML,看看有什么遗漏,配置错误等。


I have a Grails 1.3.7 application and am trying to setup log4j for production in the configuration. The log4j settings were fine in development, but I can't get anything to show for production. I am trying to make a rolling file among other things, but I can't get anything to show. I even have the configuration at the "info" level so that I can ensure something will come through. I don't see anything of interest in the tomcat logs on the server. Any ideas?

log4j = {
    def catalinaBase = System.properties.getProperty('catalina.base')
    if (!catalinaBase) catalinaBase = '.'   // just in case
    def logDirectory = "${catalinaBase}/logs"

    root { info "stdout", "roll", "errors" }

    // Log all at the error level
    info 'org.apache.',
    'org.tomcat.',
    'grails.app',
    'org.acegisecurity',
    'org.codehaus.groovy.grails.web.servlet', // controllers
    'org.codehaus.groovy.grails.web.pages', // GSP
    'org.codehaus.groovy.grails.web.sitemesh', // layouts
    'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
    'org.codehaus.groovy.grails.web.mapping', // URL mapping
    'org.codehaus.groovy.grails.commons', // core / classloading
    'org.codehaus.groovy.grails.plugins', // plugins
    'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
    'org.springframework',
    'org.hibernate'
    warn 'org.mortbay.log'
    warn 'grails.app'

    appenders {
        console name: "stdout", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n")
        file name: "errors", file: "pps-errors.log", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n")
        appender new org.apache.log4j.DailyRollingFileAppender(name:"roll", datePattern: "'.'yyyy-MM-dd", file:"pps-rolling.log", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"))

        environments {
            production {
                file name: "prod-errors", file: "${logDirectory}/pps-errors.log".toString(), layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n")
                appender new org.apache.log4j.DailyRollingFileAppender(name:"prod-roll", datePattern: "'.'yyyy-MM-dd", file:"${logDirectory}/pps-errors-daily.log".toString(), layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"))
            }
        }
    }

    environments {
        development{

            debug stdout:   'org.hibernate.SQL',
            'org.hibernate.transaction'//,
            //'org.hibernate.cache'
            //trace stdout: 'org.hibernate.type'
        }
        test {
            root { error "stdout", "roll", "errors" }
        }
        production {

            root {
                info "prod-roll", "prod-errors", "stdout", "roll", "errors"
            }

            info 'org.apache.',
            'org.tomcat.',
            'grails.app',
            'org.acegisecurity',
            'org.codehaus.groovy.grails.web.servlet', // controllers
            'org.codehaus.groovy.grails.web.pages', // GSP
            'org.codehaus.groovy.grails.web.sitemesh', // layouts
            'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
            'org.codehaus.groovy.grails.web.mapping', // URL mapping
            'org.codehaus.groovy.grails.commons', // core / classloading
            'org.codehaus.groovy.grails.plugins', // plugins
            'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
            'org.springframework',
            'org.hibernate'
        }
    }

    debug 'grails.app.task'
    //grails = "debug"
    //StackTrace = "error,errors"

    //additivity.StackTrace = false
}

EDIT:

The catalina.out file in tomcat6 has the following:

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). log4j:WARN Please initialize the log4j system properly.

SECOND EDIT:

I made a minimal configuration following Burt below to this:

log4j = {
    String logDirectory = "${System.getProperty('catalina.base') ?: '.'}/logs"

    info 'org.apache.',
            'org.tomcat.',
            'grails.app',
            'org.acegisecurity',
            'org.codehaus.groovy.grails',
            'org.springframework',
            'org.hibernate'
    warn 'grails.app'

    appenders {
        file name: "errors", file: "${logDirectory}/pps-errors.log",
                layout: pattern(conversionPattern: commonPattern)
        appender new DailyRollingFileAppender(
                name:"roll", datePattern: "'.'yyyy-MM-dd",
                file:"${logDirectory}/pps-rolling.log",
                layout: pattern(conversionPattern: commonPattern))

        file name: "prod-errors", file: "${logDirectory}/pps-errors.log",
                layout: pattern(conversionPattern: commonPattern)
        appender new DailyRollingFileAppender(
                name:"prod-roll", datePattern: "'.'yyyy-MM-dd",
                file:"${logDirectory}/pps-errors-daily.log",
                layout: pattern(conversionPattern: commonPattern))
    }

    root {
        info "prod-roll", "prod-errors", "roll", "errors"
    }
}

I still get the same message in tomcat and still no logging takes place. Is there something I have to do to setup tomcat for logging in this manner?

EDIT 3: Output from App-Info. This does not have my custom appenders in it, leading me to believe that that is the problem. However, when I run the app in development mode, I can verify that the log files are in fact created:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">    <appender name="stacktraceLog" class="org.apache.log4j.FileAppender">
      <param name="file" value="/home/devon/Documents/SynaSync/Projects/ProjectPointSpread/Source/trunk/target/stacktrace.log"/>
      <param name="name" value="stacktraceLog"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="conversionPattern" value="%d [%t] %-5p %c{2} %x
- %m%n"/>
      </layout>    </appender>    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
      <param name="name" value="stdout"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="conversionPattern" value="%d [%t] %-5p %c{2} %x
- %m%n"/>
      </layout>    </appender>    <logger name="StackTrace" additivity="false">
      <appender-ref ref="stacktraceLog"/>    </logger>    <logger name="grails.app">
      <level value="WARN"/>    </logger>    <logger name="grails.app.task">
      <level value="DEBUG"/>    </logger>    <logger name="org.acegisecurity">
      <level value="INFO"/>    </logger>    <logger name="org.apache.">
      <level value="INFO"/>    </logger>    <logger name="org.codehaus.groovy.grails.commons">
      <level value="INFO"/>    </logger>    <logger name="org.codehaus.groovy.grails.orm.hibernate">
      <level value="INFO"/>    </logger>    <logger name="org.codehaus.groovy.grails.plugins">
      <level value="INFO"/>    </logger>    <logger name="org.codehaus.groovy.grails.web.mapping">
      <level value="INFO"/>    </logger>    <logger name="org.codehaus.groovy.grails.web.mapping.filter">
      <level value="INFO"/>    </logger>    <logger name="org.codehaus.groovy.grails.web.pages">
      <level value="INFO"/>    </logger>    <logger name="org.codehaus.groovy.grails.web.servlet">
      <level value="INFO"/>    </logger>    <logger name="org.codehaus.groovy.grails.web.sitemesh">
      <level value="INFO"/>    </logger>    <logger name="org.hibernate">
      <level value="INFO"/>    </logger>    <logger name="org.springframework">
      <level value="INFO"/>    </logger>    <logger name="org.tomcat.">
      <level value="INFO"/>    </logger>    <root>
      <level value="INFO"/>
      <appender-ref ref="stdout"/>    </root> </log4j:configuration>

EDIT 4: I am still having a problem logging in production. Now, when I use the below logging config and run it in debug mode, I can correctly see all of the appenders in the app-info tool. However, when I build the code for production the app-info reveals that the log4j.xml that would be generated is pretty much blank:

New config:

log4j = {
    String logDirectory = "${System.getProperty('catalina.base') ?: '.'}/logs"

    // For some reason the 'appenders' section had to come first and it messed everything up! Maybe it just 
    // needs to go before root
    appenders {
        console name: "stdout", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n")
        file name: "errors", file: "pps-errors.log", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n")
        appender new org.apache.log4j.DailyRollingFileAppender(name:"roll", datePattern: "'.'yyyy-MM-dd", file:"pps-rolling.log", layout: pattern(conversionPattern: "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"))

    }


    root { info "stdout", "roll", "errors" }
    // Log all at the error level
    info 'org.apache.',
    'org.tomcat.',
    'grails.app',
    'org.acegisecurity',
    'org.codehaus.groovy.grails.web.servlet', // controllers
    'org.codehaus.groovy.grails.web.pages', // GSP
    'org.codehaus.groovy.grails.web.sitemesh', // layouts
    'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
    'org.codehaus.groovy.grails.web.mapping', // URL mapping
    'org.codehaus.groovy.grails.commons', // core / classloading
    'org.codehaus.groovy.grails.plugins', // plugins
    'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
    'org.springframework',
    'org.hibernate'
    warn 'grails.app'
}

Output log4j.xml in Prod:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
   <logger name="Test">
      <level value="ALL"/>
   </logger>
   <root>
      <level value="DEBUG"/>
   </root>
</log4j:configuration>

解决方案

Unfortunately you can't add environments blocks in arbitrary locations, and in general the log4j configuration can't be made very DRY since it has to occur in one closure. Here's what I think you were getting at:

import org.apache.log4j.DailyRollingFileAppender

String commonPattern = "%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"
environments {
   development {
      log4j = {
         info 'org.apache.',
              'org.tomcat.',
              'org.acegisecurity',
              'org.codehaus.groovy.grails',
              'org.springframework',
              'org.hibernate'
         warn 'grails.app'
         debug 'org.hibernate.SQL',
               'org.hibernate.transaction'
      }
   }
   test {
      log4j = {
         root {
            error "stdout"
         }

         info 'org.apache.',
              'org.tomcat.',
              'org.acegisecurity',
              'org.codehaus.groovy.grails',
              'org.springframework',
              'org.hibernate'
         warn 'grails.app'
      }
   }
   production {

      log4j = {
         String logDirectory = "${System.getProperty('catalina.base') ?: '.'}/logs"

         info 'org.apache.',
              'org.tomcat.',
              'grails.app',
              'org.acegisecurity',
              'org.codehaus.groovy.grails',
              'org.springframework',
              'org.hibernate'
         warn 'grails.app'

         appenders {
            file name: "errors", file: "${logDirectory}/pps-errors.log",
                 layout: pattern(conversionPattern: commonPattern)
            appender new DailyRollingFileAppender(
               name:"roll", datePattern: "'.'yyyy-MM-dd",
               file:"${logDirectory}/pps-rolling.log",
               layout: pattern(conversionPattern: commonPattern))

            file name: "prod-errors", file: "${logDirectory}/pps-errors.log",
                 layout: pattern(conversionPattern: commonPattern)
            appender new DailyRollingFileAppender(
               name:"prod-roll", datePattern: "'.'yyyy-MM-dd",
               file:"${logDirectory}/pps-errors-daily.log",
               layout: pattern(conversionPattern: commonPattern))
         }

         root {
            info "prod-roll", "prod-errors", "roll", "errors"
         }
      }
   }
}

I removed 'org.mortbay.log' since I doubt you're using Jetty - put it back if you are. Also 'grails.app' is listed under info and warn. And I removed the "stdout" appender from prod since that will dump to catalina.out and you've already configured file loggers.

The app-info plugin has a feature where it will reverse-engineer the XML that could have been used to configure the equivalent logging configuration, if you were using the traditional log4j.xml approach. It's not exact but should be very close. I find it's very useful for debugging logging issues like this since even if you haven't used the XML file syntax you can compare the Config.groovy settings with what ends up in the XML and see what's missing, misconfigured, etc.

这篇关于Grails Log4J未登录正在生产的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆