首先说说log4j的使用:
1)将log4j日志bao加进项目里面。
2)配置log4j.properties.
顶行配置:log4j.rootCategory=WARN, stdout,root
3) 在具体写日志的类中使用日志实体。
private static Logger loginLogger = Logger.getLogger("com._21cn.member.analyticslog.utils.AnalyticsLogUtil.loginLog");
private static Logger registerLogger = Logger.getLogger("com._21cn.member.analyticslog.utils.AnalyticsLogUtil.registerLog");
private static Logger log = Logger.getLogger("com._21cn.member.analyticslog.utils.AnalyticsLogUtil.registerAndLoginLogError");
private static Logger privilegeLogger = Logger.getLogger("com._21cn.member.analyticslog.utils.AnalyticsLogUtil.privilegeLog");
private static Logger privilegeLogError = Logger.getLogger("com._21cn.member.analyticslog.utils.AnalyticsLogUtil.privilegeLogError");
上面是在具体的类里面实例化一个log,然后取一个唯一的名称。
4)在log4j中定义日志实体保存到哪里,以什么格式保存。
######loginAllLog####
log4j.logger.com._21cn.member.util.AnalyticsLogHelper.loginLog=DEBUG, loginAllLog
log4j.additivity.com._21cn.member.util.AnalyticsLogHelper.loginLog=false
log4j.appender.loginAllLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.loginAllLog.File=/data/jsp/logs/loginAllLog.log
log4j.appender.loginAllLog.layout=org.apache.log4j.PatternLayout
log4j.appender.loginAllLog.layout.ConversionPattern=%m%n
######registerAllLog####
log4j.logger.com._21cn.member.util.AnalyticsLogHelper.registerLog=DEBUG, registerAllLog
log4j.additivity.com._21cn.member.analytics.AnalyticsLogHelper.registerLogger=false
log4j.appender.registerAllLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.registerAllLog.File=/data/jsp/logs/registerAllLog.log
log4j.appender.registerAllLog.layout=org.apache.log4j.PatternLayout
log4j.appender.registerAllLog.layout.ConversionPattern=%m%n
首先,com._21cn.member.util.AnalyticsLogHelper.loginLog这一句是获取具体的实例,然后取个别名:loginAllLog。接着就是设置保存的路径等内容。
这样子的话,就可以在/data/jsp/logs/中生成上面的日志文件了。
接下来说说日志的模块化管理,为什么要模块化管理呢,具体原因有:1 提供给其他模块的日志不能有依赖 2 便于维护
以下是我的日志模块的思路:
1)总的日志类,所有的方法的调用都在AnalyticsLogUtil里面,使用方法是类.方法().
2)不同的日志有不同的日志实体.
3)不同的写日志有不同的task.