用于grails app的Log4j socketappender配置?

时间:2014-04-27 09:49:30

标签: grails log4j logstash

我有一个Grails 2.3.7应用程序。

在Config.groovy中我添加了 -

log4j = {
appenders {
        rollingFile name:'stdout', file:"${logDirectory}/myapp.log".toString()
        rollingFile name:'stacktrace', file:"${logDirectory}/stacktrace_myapp.log".toString()
        appender new org.apache.log4j.net.SocketAppender(name:'central',
             layout:pattern(conversionPattern:'%d{ISO8601} %-5p %c{2} %x - %m%n'),
             remoteHost: 'localhost', port: 4560, reconnectionDelay: 10000,locationInfo:true)
}
info   'grails.app'    
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'
 //debug 'org.apache.http.wire'
}

我还安装了Logstash来监听日志消息。 logstash conf。档案 -

input {
log4j {
mode => "server"
host => "localhost"
port => 4560
type => log4j
}
}

output {
  elasticsearch { host => localhost }
  stdout { codec => rubydebug }
}

但我没有看到logstash正在解析任何日志。也就是说,stdout或elasticsearch接口都没有输出。

  

本地主机:9200 / _search相当

虽然我能够看到myapp.log文件中生成的日志

1 个答案:

答案 0 :(得分:1)

添加行

root { info "central", "stdout", "stacktrace" }

在appenders阻止之后做了伎俩