1Log4j是什么
Log4j是Apache比较优秀的开源项目。在各个平台和项目中有较为广泛的应用,是为JAVA平台开发的日志管理平台。同时,Log4j也是JAVA开发项目中使用比较普遍的日志管理框架,
经过综合评估,无论稳定性,还是功能性,都能符合本次项目开发的需求,因此,本次项目决定采用Log4j作为项目的日志开发框架。
Log4j由Apache开源项目维护。官方链接:http://logging.apache.org。
2Log4j的组成包括:
由项目的 JAR 包和配置文件组成。-
log4j-1.2.15.jar(项目JAR包)。这个是本项目使用的版本,具体项目可以根据需要在上面的官方链接下载最新版本。
-
Log4j的配置文件:包括文本格式键值对组合的log4j.properties或XML格式的log4j.xml。
要让配置文件生效,需要在应用程序启动时加载配置文件到JVM中。配置文件的加载方法有3种:自动加载、手动加载和默认配置加载。下面分别介绍和讨论。
1)自动加载方式:只要把配置文件放在CLASSPATH环境变量所指定的目录,JAVA启动时会制动加载。
2)手动加载方式:如果不是包含在CLASSPATH中默认加载,而是在自定义的项目配置文件目录下,如config,手工加载,那么,这两种文件在加载上有区别。
键值对格式,需要使用PropertyConfigurator.config(filepath)加载。
XML格式,需要使用DOMConfigurator.config(filepath)加载。
在Eclipse RCP程序中,加载XML的示例如下:
URLurl= Platform.getBundle("PluginName").getEntry("config/log4j.xml");
Stringpath= FileLocator.resolve(url).getPath();
DOMConfigurator.configure(path);
3)除了以上的二种加载方法之外,还有一种加载方式是不用配置文件的,代码如下:
BasicConfigurator.configure();
通过以上的方法调用,可以自动快速地使用缺省Log4j环境
SLF4J
SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用 其所希望的日志系统。
实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指 定驱动程序,而在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用JDBC基本不用考虑具体数据库一样,SLF4J提供了 统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中 灵活切换日志系统。
假设使用 log4j 做为底层日志工具,运行以上程序需要三个包: log4j-1.2.xx.jar 、 slf4j-api-x.x.x.jar 、以及 slf4j-log4j12-x.x.x.jar ,后两个包由 slf4j 提供,包名中的 x 表示版本号