[英]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.