簡體   English   中英

Tomcat中未創建日志文件

[英]log file not being created in tomcat

當在生產環境中將其部署到tomcat時,我打算為我的應用程序准備一個日志文件。 在開發過程中,我可以在intellij控制台中看到日志。

因此,出於上述目的,我創建了以下DSL(摘自SO)

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

// default for all environments
log4j = { root ->
    appenders {
        rollingFile name:'stdout', file:"${logDirectory}/myapp.log".toString(), maxFileSize:'100KB'
        rollingFile name:'stacktrace', file:"${logDirectory}/myapp_stack.log".toString(), maxFileSize:'100KB'
    }

    error  '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'
    root.level = org.apache.log4j.Level.WARN
}

// special settings with production env
environments {
    production {
        log4j = { root ->
            appenders {
                console name: 'stdout', layout: pattern(conversionPattern: "%d [%t] %-5p %c %x - %m%n")
            }
            warn       '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  'com.mypackage'
            root.level = org.apache.log4j.Level.INFO
        }
    }
}

注意上面的塊中的println 我已驗證找到catalina.base的路徑並將其輸出到catalina.out

但是,在部署應用程序時-不會創建日志文件。 此外,我的log.info日志正在寫入catalina.out

  • 部署應用程序時,我還需要做什么來創建日志文件?
  • rollingFile name:'stacktrace'做什么的? 是否將堆棧跟蹤記錄到單獨的文件? 如果是這樣,它是否是內置的log4j?

復制您的appender

environments {
    production {
        log4j = { root ->
            appenders {
                rollingFile name:'stdout', file:"${logDirectory}/myapp.log".toString(), maxFileSize:'100KB'
                rollingFile name:'stacktrace', file:"${logDirectory}/myapp_stack.log".toString(), maxFileSize:'100KB'
            }
            warn       '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  'com.mypackage'
            root.level = org.apache.log4j.Level.INFO
        }
    }
}

對於您的第二個問題,是的,請參閱https://stackoverflow.com/a/12393628/2048098

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM