我有一个简单的Grails应用程序,并且在控制器中有一些记录。但是,无论我如何配置日志记录,我都看不到我的应用程序日志消息(即使我被Grails Internal Loggging淹没了)。
配置:
// log4j configuration
log4j = {
// Example of changing the log pattern for the default console appender:
//
appenders {
console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
file name:'file', file:'C:\Users\C.Ross\Logs\Budget.log'
}
root {
warn 'file', 'stdout'
}
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',
'net.sf.ehcache.hibernate'
trace 'grails.app.controller'
}
我也尝试了
trace 'com.ross.budget'
和
root {
all 'file', 'stdout'
}
,但根本没有运气。即使其他所有内容正在记录,我也看不到我的应用程序的日志消息。我在做什么错?
代码:
package com.ross.budget
class BudgetController {
def index() {
redirect(action:"list")
}
def list() {
log.trace "Retrieving all budgets..."
[budgetList: Budget.all]
}
def add() {
log.trace "Calling add..."
}
def show(){
log.trace "Retrieving budget"
def budget = Budget.get(params.id)
[budget: budget]
}
def save(){
log.debug "Creating new budget"
def budget = new Budget(params)
budget.save()
redirect(action:"list")
}
def addLineItem(){
log.trace("Retrieving budget $params.id")
def budget = Budget.get(params.id)
log.trace("Creating line item from params")
def lineItem = new LineItem(params)
log.debug "Adding line item to budget"
budget.lineItems.add(lineItem)
log.trace "Saving budget"
budget.save()
log.trace("Redirecting to show ...")
redirect(action:"show", id:params.id)
}
}
根据Grails docs(在配置记录器下),您需要grails.app.controllers
。只需使伪影的名称复数。