没有从Grails应用程序记录应用程序?

时间:2012-10-27 17:15:37

标签: grails log4j grails-2.1

我有一个简单的grails应用程序和一些登录控制器。但是,无论我如何配置日志记录,我都看不到我的应用程序日志消息(即使我可能被grails内部日志记录所淹没)。

配置:

// 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)
    }
}

1 个答案:

答案 0 :(得分:2)

根据Grails docs(在配置记录器下),您需要grails.app.controllers。只需将人工制品名称复数。