【问题标题】:Programmatically configure log4j to log to custom file at runtime in Grails 2在 Grails 2 中以编程方式配置 log4j 以在运行时记录到自定义文件
【发布时间】:2016-01-30 18:54:57
【问题描述】:

我正在使用 Grails 2.2.4 和 log4j 以相当标准的方式配置 (http://grails-dev.blogspot.com/2012/09/setting-up-log4j-configuration-in.html),它运行良好(问题末尾的详细信息)。

我希望在单独的文件中获得有关具有特定类的对象发生的任何事情的完整信息,因此我希望能够执行configure log4j to log to custom file at runtime 之类的操作,但我不知道该怎么做这在 grails 中。做类似的事情会很棒

package com.mydomain.service

import org.apache.commons.logging.LogFactory

class SampleService {

    private static final log = LogFactory.getLog(this)

    def index(Long id) {
        log.setFileName("object-${id}.log")
        log.info("The log message.")
    }
}

(我知道方法 setFileName 不存在;我说的是一般方法)有可能吗?

如果可能的话,您能告诉我有关性能的任何信息吗?每天记录大约 500 个(

提前致谢。


我的 log4j 配置:

在代码中我记录如下消息:

package com.mydomain.service

import org.apache.commons.logging.LogFactory

class SampleService {

    private static final log = LogFactory.getLog(this)

    def index() {
        log.info("The log message.")
    }
}

配置文件包含

log4j = {
    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',
        'net.sf.ehcache.hibernate'

    warn 'org.springframework',
        'org.hibernate',
        'groovyx.net.http'

    all 'myApp'
}

【问题讨论】:

    标签: grails logging log4j


    【解决方案1】:

    您可以创建一个可以在运行时修改的外部配置文件,并让 grails 加载该文件。这样,您可以在运行时动态修改您的应用程序中的日志记录。看看这个link

    【讨论】:

    • 感谢您的输入,这个链接很有趣;虽然我认为每次我想记录某些东西时更改配置有点矫枉过正,并且给代码增加了不必要的复杂性,其他人很难理解。也许我会完全放弃这个想法。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多