gpt4 book ai didi

tomcat - Tomcat "Log4J"上的 Grails WAR 根本不工作

转载 作者:行者123 更新时间:2023-11-28 21:47:55 25 4
gpt4 key购买 nike

我在 grails 应用程序的 Config.groovy 中正确配置了 log4j DSL。使用 grails run-app 运行应用程序会转储我在 DSL 中指定的完美日志记录。然而,在进行 grails war 生成 war 文件并将其部署到 tomcat 之后,日志记录就消失了。我看不到它在任何地方工作,除了 tomcat 控制台在调试级别显示数百万条日志语句并且没有任何内容与我登录日志文件有关。


log4j = {
appenders {
appender new org.apache.log4j.DailyRollingFileAppender(name: "tomcatLog", datePattern: "'.'yyyy-MM-dd", file: "${logDirectory}/snm.log".toString(), layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n'))
}
root {
info 'stdout', 'tomcatLog'
additivity = true
}
info 'grails.app',
'grails.app.controller',
'grails.app.bootstrap',
'grails.app.service',
'grails.app.task',
'commons',
'jsontwitter'
}

你能解释一下上面的DSL吗?它发送 commons.* 和 jsontwitter.* 类日志到指定的日志文件但没有 Controller ,服务日志保存在文件中。

谢谢,阿拉姆谢尔

最佳答案

您需要找出 tomcat 使用的日志记录目录。这是通过以下 grails-app/conf/Config.groovy 片段完成的:

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

// default for all environments
log4j = { root ->
appenders {
rollingFile name:'stdout', file:"${logDirectory}/${appName}.log".toString(), maxFileSize:'100KB'
rollingFile name:'stacktrace', file:"${logDirectory}/${appName}_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 {
development {
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.netjay'
root.level = org.apache.log4j.Level.INFO
}
}
}

关于tomcat - Tomcat "Log4J"上的 Grails WAR 根本不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com