欢迎进入Wiki » FAQ » 如何配置日志(log4j)?

如何配置日志(log4j)?

在2013-12-03 14:14上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

grails 使用 log4j 作为日志组件,

安装了 BroToolkit 后,所有日志会输出到 "logs/工程名_out.log" 和 "logs/工程名_err.log" (stacktrace日志)中,每个日志的文件大小限制为20M,超出限制后自动备份,其中 out 日志最多 200 个备份、err 日志最多 100 个备份。此外,默认配置了一些包的日志等级,如 bropen、grails、org.hibernate 等。

安装了 BroFramework 后,每条日志输出中,会自动记录当前用户名和IP地址,便于分析。

如果默认配置无法满足日志要求的话,可以在工程的 Config.groovy 中进行个性设置。

扩展默认设置,添加日志级别规则

// 注意这里是 log4j.Xxxx
log4j.app = {
   // 启动时打印 ehcache 的配置文件信息
   debug 'grails.plugin.cache.ehcache.EhcacheConfigLoader'
   
   // 打印超时任务的trace日志
   trace 'grails.app.jobs.bropen.bpm.ExecuteTimeoutTaskJob'
}

覆盖 appenders

log4j.app = {
    String appName = delegate.config.grails.project.groupId
    appenders {
       // 每个日志设为最大 100M,其他配置和默认配置保持一致
       console name:"stdout", layout:pattern(conversionPattern: '%d{HH:mm:ss,SSS} [%x] [%t] [%p %c] - %m%n')
        rollingFile name:"R", file:"logs/${appName}_out.log", maxFileSize:'100MB', maxBackupIndex:'200', layout:pattern(conversionPattern:'[%x] %d [%r] [%t] [%p %c] - %m%n')
        rollingFile name:"stacktrace", file:"logs/${appName}_err.log", maxFileSize:'100MB', maxBackupIndex:'100', layout:pattern(conversionPattern:'[%x] %d [%r] [%t] [%p %c] - %m%n')
   }
}

完全覆盖默认设置

log4j = {
   ....
}
// 或者 log4j.default = {....}

系统运行过程中动态设置日志级别

目前暂时没有提供界面设置方式,但是可以用管理员登录后,在开发者工具的调试控制台中动态设置日志级别,如执行下面的代码:

// 打印 Hibernate 的 sql
org.apache.log4j.Logger.getLogger("org.hibernate.SQL").level = org.apache.log4j.Level.DEBUG;
在2013-12-03 14:14上被李小翔创建

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号