gpt4 book ai didi

grails - 在Grails 2中以编程方式配置log4j以在运行时记录到自定义文件

转载 作者:行者123 更新时间:2023-12-02 15:54:34 25 4
gpt4 key购买 nike

我使用的是Grails 2.2.4,它以相当标准的方式(http://grails-dev.blogspot.com/2012/09/setting-up-log4j-configuration-in.html)配置了log4j,并且效果很好(详细信息在问题末尾)。

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

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个(<1000行长)文件会减慢应用程序的执行速度吗?

提前致谢。

我的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加载该文件。这样,您可以在运行时动态修改应用程序中的日志记录。看看这个link

关于grails - 在Grails 2中以编程方式配置log4j以在运行时记录到自定义文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35105724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com