Я заметил, что у вас есть:
"classpath:${appName}-config.properties",
"classpath:${appName}-config.groovy",
"file:${userHome}/.grails/${appName}-config. properties",
"file:${userHome}/.grails/${appName}-config.groovy"
Это может привести к избыточному объявлению свойств, что может привести к проблемам. Я бы попробовал удалить два верхних объявленных файла пути к классам и просто придерживаться одного файла свойств. Я обычно разделяю свои файлы свойств по средам, таким как (DEV, TEST, PROD), вам может понадобиться только DEV, но вы, возможно, когда-нибудь захотите иметь среду PROD. Также вам нужно убедиться, что ваша конфигурация log4j настроена правильно и достаточно проста, чтобы просто использовать то, что дает Grails с помощью команды create-app с небольшой настройкой.
Config.groovy:
environments {
development {
appName = "application"
logDirectory = "/where/to/keep/local/logs/"
}
production {
appName = "application"
configDir ="/path/to/prod/app/cfg/"
//Make sure logDirectory is defined in your properties file
grails.config.locations = ["file:${configDir}${appName}-config.properties"]
}
}
// log4j configuration
log4j = {
println "Log Directory: ${logDirectory}"
def logPrefix = "applicationName"
appenders {
console name:'stdout', layout:pattern(conversionPattern: '%c{2} - %X{userName} - %m%n')
appender new DailyRollingFileAppender(
name: 'stacktrace',
datePattern: "'.'yyyy-MM-dd",
fileName: "${logDirectory}/${logPrefix}Stacktrace.log",
layout: pattern(conversionPattern:'%d [%t] %-5p %c{2} %x - %X{userName} - %m%n')
)
appender new DailyRollingFileAppender(
name: 'logAppender',
datePattern: "'.'yyyy-MM-dd",
fileName: "${logDirectory}/${logPrefix}.log",
layout: pattern(conversionPattern:'%d [%t] %-5p %c{2} %x - %X{userName} - %m%n')
)
appender new DailyRollingFileAppender(
name: 'DebugLog',
datePattern: "'.'yyyy-MM-dd",
fileName: "${logDirectory}/${logPrefix}Debug.log",
layout: pattern(conversionPattern:'%d{dd MMM yyyy HH:mm:ss} [%X{userName}] %c{2} %m%n')
)
}
}
Кроме того, я вижу, что вы храните свои свойства в каталоге .grails, лично я бы этого делать не стал. Если вы хотите сохранить его в своем приложении, вы можете создать каталог application/grails-app/cfg/, и доступ к файлу будет выглядеть примерно так:
production {
appName = "application"
//Make sure logDirectory is defined in your properties file
grails.config.locations = ["file:../cfg/${appName}-config.properties"]
}
05.05.2015