总结最近的学习,感觉总不是很踏实,大致抱着实用的态度,只要能上手差不多能解决问题就OK,也积累了一些问题,在此留个底,日后也可以发现当时留了哪些悬而未决的问题,减少重复学习的成本;
java log:
apache通用日志接口:org.apache.commons.logging {Log,LogFactory}/ slf4j:org.slf4j.Logger
Log主要log接口
LogFactory提供了获取日志实例的两个方法:
public static Log getLog(String name)
public static Log getLog(Class class)
log4j配置文件加载规则
java配置文件读取:
class.getResource,根据class寻找绝对、相对路径
classLoader.getResource,根据classpath寻找绝对、相对路径
common logging和log4j配合使用
1) 首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类;
2) 如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类;
3) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;
4) 否则,使用JDK自身的日志实现类(JDK1.4以后才有日志实现类);
5) 否则,使用commons-logging自己提供的一个简单的日志实现类SimpleLog;
log4j.rootLogger = [ level ] , appenderName, appenderName, …
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.option = valueN
其中,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)