2012-04-30 3 views
2

컨트롤러와 서비스가 ApiControllerApiService.groovy인데, 첨부 파일을 사용하여 파일에 errorinfo 로그를 기록하도록 Config.groovy 파일을 설정했습니다. 내 서비스에서 log.info("foo")으로 전화를 걸면 STDOUT에만 쓰고 파일에는 쓰지 않습니다. 파일은 생성되었지만 쓰여진 적이 없습니다.내 로거가 Grails의 파일 appender에 쓸 수없는 이유는 무엇입니까?

package com.ono.catfish 

class ApiService { 

    def ping(Map params) { 

     log.info("Received submission: ${params.toMapString()}") 
     log.error("Testing Error Log") 

    } 
} 

사람이 나를 내가 잘못 뭘하는지 알아낼 수 있습니다 :

여기 내 서비스 grails-app/com/ono/catfish/ApiService.groovy이있어 여기 내 Config.groovy 파일

// log4j configuration 
def isProd = Environment.current == Environment.PRODUCTION 

def catalinaBase = System.properties.getProperty('catalina.base') 
if (!catalinaBase) catalinaBase = '.' // just in case 

def logDirectory = "${catalinaBase}/logs" 
if (!isProd) { 
    logDirectory = 'logs' 
} 

log4j = { 
    // Example of changing the log pattern for the default console 
    // appender: 
    // 
    appenders { 
     appenders { 
      console name: 'debug,info,warn,error,stdout,logfile', layout: pattern(conversionPattern: '%c{2} %m%n') 
      appender new RollingFileAppender(name: "apiLog", maxFileSize: 1024, file: "${logDirectory}/api.log") 
      appender new RollingFileAppender(name: "pingDupLog", maxFileSize: 1024, file: "${logDirectory}/pingDup.log") 
      appender new RollingFileAppender(name: "fraudLog", maxFileSize: 1024, file: "${logDirectory}/fraud.log") 
      appender new RollingFileAppender(name: "appLog", maxFileSize: 1024, file: "${logDirectory}/app.log") 
     } 
    } 

    error apiLog: ['grails.app.services.com.ono.catfish.ApiService', 
        'grails.app.controllers.com.ono.catfish.ApiController'], 

      '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' 

    info apiLog: ['grails.app.services.com.ono.catfish.ApiService', 
        'grails.app.controllers.com.ono.catfish.ApiController'] 

    root { 
     info 'stdout', 'appLog' 
    } 
} 

이고?

감사합니다.

답변

0

내 생각에 apiLog을 다음과 같이 로커 root에 첨부해야합니다.

root { 
    info 'stdout', 'appLog', 'apiLog' 
} 

또한 콘솔 어 펜더 이름이 잘못, 그것은 "stdout"에만해야한다.

관련 문제