我使用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(<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'
}