Grails 如何在PCFDev中查看Tomcat日志?
我正在PCFDev中部署一个带有mysql的2.3.5 Grails应用程序。在我的应用程序中点击一些URL,我会得到一个500错误。当我使用Grails 如何在PCFDev中查看Tomcat日志?,grails,cloud-foundry,Grails,Cloud Foundry,我正在PCFDev中部署一个带有mysql的2.3.5 Grails应用程序。在我的应用程序中点击一些URL,我会得到一个500错误。当我使用cf logs查看日志时,我的示例只看到访问日志。他们没有显示我的踪迹 我怎样才能在日志中看到stacktrace,从而准确地知道是什么导致了错误?通常在Tomcat中部署应用程序时,我会在Tomcat的/logs目录中看到这些日志 这就是我的grails应用程序的config.groovy外观 def catalinaBase = System.prop
cf logs查看日志时,我的示例只看到访问日志。他们没有显示我的踪迹
我怎样才能在日志中看到stacktrace,从而准确地知道是什么导致了错误?通常在Tomcat中部署应用程序时,我会在Tomcat的/logs
目录中看到这些日志
这就是我的grails应用程序的config.groovy
外观
def catalinaBase = System.properties.getProperty('catalina.base')
if (!catalinaBase) catalinaBase = '.' // just in case
def logDirectory = "${catalinaBase}/logs"
log4j = { root ->
appenders {
// console name: 'stdout', layout: pattern(conversionPattern: "%d [%t] %-5p %c %x - %m%n")
rollingFile name:'stdout', file:"${logDirectory}/my.log".toString(), maxFileSize:'100KB'
rollingFile name:'stacktrace', file:"${logDirectory}/my_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.aerstone.ldap', 'com.aerstone.scanner.helper'
root.level = org.apache.log4j.Level.INFO
}
谷歌搜索“cf日志”是第一个结果。它有一节是关于。它说:
您的应用程序必须将日志写入STDERR
或STDOUT
。两者都是典型的缓冲区,在将消息传递给Loggregator之前,应该刷新缓冲区
除了写入目录或文件外,还应考虑将输出发送到<代码> StdOut<<代码>和<代码> STDRR 按
流。
此外,您还可以搜索“cf ssh”,其中解释了如何将ssh连接到应用程序的容器中,并查看其本地文件系统上的内容。谷歌搜索“cf日志”作为第一个结果。它有一节是关于。它说:
您的应用程序必须将日志写入STDERR
或STDOUT
。两者都是典型的缓冲区,在将消息传递给Loggregator之前,应该刷新缓冲区
除了写入目录或文件外,还应考虑将输出发送到<代码> StdOut<<代码>和<代码> STDRR 按
流。
此外,您还可以搜索“cf ssh”,其中解释了如何将ssh连接到应用程序的容器中,并查看其本地文件系统上的内容。cf是否提供了grails或spring boot应用程序的建议log4j设置示例?遗憾的是,我不太确定。您几乎做到了。在上面的示例中,您已经注释掉了控制台appender。取消对该文件的注释,并注释掉滚动文件附加器。这会导致你的应用程序登录到STDOUT,当你运行cf logs
时,就会看到STDOUT。cf是否为grails或spring boot应用程序提供了一个推荐的log4j设置示例?不幸的是,我不确定。你就快到了。在上面的示例中,您已经注释掉了控制台appender。取消对该文件的注释,并注释掉滚动文件附加器。这将导致您的应用程序登录到标准输出,当您运行cf logs
时,标准输出将可见。