当应用程序启动时,我们可以让Grails记录一些额外的信息。 类似于应用程序的进程ID(PID)以及应用程序在哪台计算机上启动。 以及启动应用程序所需的时间。 GrailsApp
类具有属性logStartupInfo
,默认情况下为true
。 如果属性为true,则在Application
类的记录器的INFO和DEBUG级别记录一些额外的行。
因此,为了查看此信息,我们必须在logback.groovy
文件中配置日志记录。 假设我们的Application
类在mrhaki.grails.sample.Application
包中,然后添加以下行以在控制台上查看启动日志的输出:
...
logger 'mrhaki.grails.sample.Application', DEBUG, ['STDOUT'], false
...
当我们运行Grails应用程序时,我们会在控制台中看到以下内容:
...
INFO mrhaki.grails.sample.Application - Starting Application on mrhaki-jdriven.local with PID 20948 (/Users/mrhaki/Projects/blog/posts/sample/build/classes/main started by mrhaki in /Users/mrhaki/Projects/mrhaki.com/blog/posts/sample/)
DEBUG mrhaki.grails.sample.Application - Running with Spring Boot v1.2.3.RELEASE, Spring v4.1.6.RELEASE
INFO mrhaki.grails.sample.Application - Started Application in 8.29 seconds (JVM running for 9.906)
Grails application running at http://localhost:8080
...
如果要添加一些额外的日志记录,可以覆盖logStartupInfo
方法:
package mrhaki.grails.sample
import grails.boot.GrailsApp
import grails.boot.config.GrailsAutoConfiguration
import grails.util.*
import groovy.transform.InheritConstructors
class Application extends GrailsAutoConfiguration {
static void main(String[] args) {
// Use extended GrailsApp to run.
new StartupGrailsApp(Application).run(args)
}
}
@InheritConstructors
class StartupGrailsApp extends GrailsApp {
@Override
protected void logStartupInfo(boolean isRoot) {
// Show default info.
super.logStartupInfo(isRoot)
// And add some extra logging information.
// We use the same logger if we get the
// applicationLog property.
if (applicationLog.debugEnabled) {
final metaInfo = Metadata.getCurrent()
final String grailsVersion = GrailsUtil.grailsVersion
applicationLog.debug "Running with Grails v${grailsVersion}"
final sysprops = System.properties
applicationLog.debug "Running on ${sysprops.'os.name'} v${sysprops.'os.version'}"
}
}
}
如果运行该应用程序,则会在控制台中看到:
...
DEBUG mrhaki.grails.sample.Application - Running with Spring Boot v1.2.3.RELEASE, Spring v4.1.6.RELEASE
DEBUG mrhaki.grails.sample.Application - Running with Grails v3.0.1
DEBUG mrhaki.grails.sample.Application - Running on Mac OS X v10.10.3
...
用Grails 3.0.1编写。
翻译自: https://www.javacodegeeks.com/2015/04/grails-goodness-log-startup-info.html