整合log4j
slf4j 核心jar : slf4j-api-1.6.1.jar 。slf4j是日志框架,将其他优秀的日志第三方进行整合。
slf4j------过度的jar-----log4j
整合导入jar包
log4j 核心包:log4j-1.2.17.jar
过渡jar(整合jar):slf4j-log4j12-1.7.5.jar
导入配置文件
log4j.properties ,此配置文件通知log4j 如何输出日志
配置文件内容:
1.记录器
2.输出源
3.布局
记录器
例如: log4j.rootLogger=info, stdout,file
格式:log4j.rootLogger=日志级别, 输出源1,输出源2,。。。。
log4j 日志级别 : fatal 致命错误 error 错误 warn 警告 info 信息 debug 调试信息 trace 堆栈信息 (由高到底顺序)
输出源:
例如:log4j.appender.file=org.apache.log4j.FileAppender
格式:log4j.appender.输出源的名称=输出源的实现类
名称:自定义
实现类:log4j提供
输出源属性例如:log4j.appender.file.File=d:mylog.log
输出源属性格式:log4j.appender.名称.属性=值
每一个输出源对应一个实现类,实现类都属性(setter),底层执行setter方法进行赋值
常见的输出源实现类
org.apache.log4j.FileAppender 输出文件中
file ,表示文件输出位置
org.apache.log4j.ConsoleAppender 输出到控制台
Target ,表示使用哪种输出方式,在控制台打印内容,取值:System.out / System.err
布局 -- 确定输出格式
例如:log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
格式:log4j.appender.数据源.layout=org.apache.log4j.PatternLayout
布局属性:log4j.appender. 数据源.layout.ConversionPattern=值
12:56:30,123 info
扩展:对指定的目录设置日志级别
例如:log4j.logger.org.hibernate.transaction=debug
格式:log4j.logger.包结构=级别
# # Hibernate, Relational Persistence for Idiomatic Java # # License: GNU Lesser General Public License (LGPL), version 2.1 or later. # See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. # ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender //表示在控制台输出信息 log4j.appender.stdout.Target=System.out//表示在输出方式out/err log4j.appender.stdout.layout=org.apache.log4j.PatternLayout //布局 确定输出格式 log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n //部署属性, 数据源值
### direct messages to file hibernate.log ### #log4j.appender.file=org.apache.log4j.FileAppender //表示文件输出信息 #log4j.appender.file.File=hibernate.log #log4j.appender.file.layout=org.apache.log4j.PatternLayout #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### set log levels - for more verbose logging change 'info' to 'debug' ### log4j.rootLogger=warn, stdout #log4j.logger.org.hibernate=info log4j.logger.org.hibernate=debug ### log HQL query parser activity #log4j.logger.org.hibernate.hql.ast.AST=debug ### log just the SQL #log4j.logger.org.hibernate.SQL=debug ### log JDBC bind parameters ### log4j.logger.org.hibernate.type=info #log4j.logger.org.hibernate.type=debug ### log schema export/update ### log4j.logger.org.hibernate.tool.hbm2ddl=debug ### log HQL parse trees #log4j.logger.org.hibernate.hql=debug ### log cache activity ### #log4j.logger.org.hibernate.cache=debug ### log transaction activity #log4j.logger.org.hibernate.transaction=debug ### log JDBC resource acquisition #log4j.logger.org.hibernate.jdbc=debug ### enable the following line if you want to track down connection ### ### leakages when using DriverManagerConnectionProvider ### #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
部署属性值
如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下: %m 输出代码中指定的消息; %M 输出打印该条日志的方法名; %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL; %r 输出自应用启动到输出该log信息耗费的毫秒数; %c 输出所属的类目,通常就是所在类的全名; %t 输出产生该日志事件的线程名; %n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”; %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921; %l 输出日志事件的发生位置,及在代码中的行数;