Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java grails中的log4j:如何登录到文件?_Java_Grails_Groovy_Log4j_Dsl - Fatal编程技术网

Java grails中的log4j:如何登录到文件?

Java grails中的log4j:如何登录到文件?,java,grails,groovy,log4j,dsl,Java,Grails,Groovy,Log4j,Dsl,我在grails config.groovy中有这个log4j配置 log4j = { error 'org.codehaus.groovy.grails.web.servlet', // controllers 'org.codehaus.groovy.grails.web.pages' // GSP warn 'org.mortbay.log' appenders { rollingFile nam

我在grails config.groovy中有这个log4j配置

log4j = {
    error  'org.codehaus.groovy.grails.web.servlet',  //  controllers
                   'org.codehaus.groovy.grails.web.pages' //  GSP
    warn 'org.mortbay.log' 


    appenders {
        rollingFile  name:'infoLog', file:'info.log', threshold: org.apache.log4j.Level.INFO, maxFileSize:1024
        rollingFile  name:'warnLog', file:'warn.log', threshold: org.apache.log4j.Level.WARN, maxFileSize:1024
        rollingFile  name:'errorLog', file:'error.log', threshold: org.apache.log4j.Level.ERROR, maxFileSize:1024
        rollingFile  name:'custom', file:'custom.log', maxFileSize:1024
    }

    root {
        info 'infoLog','warnLog','errorLog','custom', stdout
        error()
        additivity = true
    }
}
信息日志、警告日志和错误日志来自上一个问题。。。他们工作得很好

现在我添加了名为“custom”的新RollingFile

我试图使用log.info(“something….${obj}”)从我的控制器和服务登录; 但似乎该消息未插入custom.log,我是否需要向配置中添加一些内容


谢谢

刚刚从grails的邮件列表中得到答案:

我只需要补充一下

调试“grails.app”

下面警告“org.mortbay.log”


案件结案!:)

我有完全相同的码头/tomcat环境。花了好几个小时才弄明白。诀窍是将文件位置(在我的例子中是相对路径)定义为Config.groovy中的全局变量,在环境块中对其进行自定义,并在log4j闭包中使用变量位置。示例代码位于:

请参见

毕竟,解决方案是将可加性设置放到包配置中:

info specialLog:'activityLog',additivity:false


您没有遗漏阈值吗?当我查看您的代码时,我认为——stout——应该被引用(“stout”),即使我使用自定义appender,它也总是在根appender中结束。如果我从根目录中删除appender,那么它根本不起作用。有没有办法防止这种情况发生?