Grails log4J Регистрация вопроса на Linux - PullRequest
2 голосов
/ 18 января 2011

Я был очень расстроен этим.

Я пытаюсь сделать следующее:

  • Зарегистрируйте все журналы приложений в файле application.log, которые имеют ИНФО или выше
  • Понять, что контролирует конфигурацию для catalina.out
  • Вход только ВНИМАНИЕ на catalina.out

Я запускаю свой сервер в Ubuntu, и у меня есть конфигурация по умолчанию для tomcat, которая включает в себя каталог conf с logging.properties. Я переименовал этот файл в l.p, чтобы он не конфликтовал. (Не уверен, что это хорошая идея)

В моем конфигурационном файле у меня есть:

def catalinaBase = System.properties.getProperty('catalina.base')
if (!catalinaBase) catalinaBase = '.'   // just in case
def logDirectory = "${catalinaBase}${File.separator}logs"
println "Log Directory: ${logDirectory}"

log4j = {

  appenders {
    rollingFile name: 'applog', file: "${logDirectory}${File.separator}application.log", layout: pattern(conversionPattern: '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{1} - %m%n'), maxFileSize: 1024
  }

  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.mortbay.log'

  info applog: 'grails.app'
  root {
   info 'applog'
  }

}

В результате я получаю три журнала:

catalina.2011-01-17.log  catalina.out  localhost.2011-01-17.log

Catalina.out имеет следующий вывод:

Log Directory: /var/lib/tomcat6/logs
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.PropertyUtils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
log4j:ERROR WARNING: Exception occured configuring log4j logging: Cannot invoke org.apache.log4j.FileAppender.setFile - argument type mismatch

Я НЕ вижу application.log в каталоге файлов журнала. Буду признателен за любую помощь, я очень расстроен по этому поводу.

Еще одна вещь, в windows все выходит на консоль и application.log создается в каталоге .grails\1.3.5\projects\<appnmae>\tomcat

1 Ответ

4 голосов
/ 18 января 2011

Ваша проблема, очевидно, в том, что существует несоответствие типов. В частности, log4j ожидает строку, когда вы даете ему строку GString. Попробуйте заменить:

"${logDirectory}${File.separator}application.log"

С этим:

"${logDirectory}${File.separator}application.log".toString()

РЕДАКТИРОВАТЬ: Пожалуйста, прочитайте это ошибка

...