Log4j的使用
导入jar包
slf4j-log4j12
Maven坐标
<!-- 加入log4j支持 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
在src下创建并配置log4j.properties文件
# 局部设置,可以单独设置某个包或者某个类或者某个方法的日志输出级别及未知
log4j.logger.com.bjsxt.mapper=DEBUG, CONSOLE,LOGFILE
# 控制台输出类
# 设置日志信息的格式的类
# 设置日志输出的格式
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=-%c-%M-%d{yyyy-MM-dd HH:mm:ss,SSS}-%m%n
# 文件输出的类
# 文件输出的路径
# 设置是否追加 true表示追加,false表示覆盖
# 设置日志输出格式的类
# 设置日志输出的格式
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=D:/log4j/axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=-%c-%M-%d{yyyy-MM-dd HH:mm:ss,SSS}-%m%n
在代码中获取logger对象,然后进行日志输出
Logger logger = Logger.getLogger(当前类的类对象);
logger.debug(String message);//建议在方法内部使用
logger.info(String message);//建议在方法的返回值打印使用
logger.warn(String message);//建议在重要数据异常时打印
logger.error(String message);//建议在catch语句中使用
logger.fatal(String message);//建议在catch语句中使用
注意:
会打印大于等于当前配置文件中设置的日志级别
debug<info<warning<error<fatal
注意:
日志还是需要提前在代码中都声明好,只是在执行的时候会
根据日志级别设置打印对应的日志,比较灵活。
##设置全局日志打印级别以及日志打印位置
日志级别:
FATAL:系统的严重错误
ERROR:模块儿错误
WARNING:警告,数据有异常
INFO:正常日志信息,一般是方法级别
DEBUG:正常日志信息,一般是方法内部的日志信息
日志打印位置:
CONSOLE:控制台输出,但是日志不会保存,会覆盖。
LOGFILE:在日志文件中输出,可以永久保存日志,可以追加也可以覆盖。
log4j.rootCategory=INFO, CONSOLE,LOGFILE
##局部设置,可以单独设置某个包或者某个类或者某个方法的日志输出级别及未知
##格式为:log4j.logger.包名.类名.方法名=级别,位置
##示例:log4j.logger.com.bjsxt.pojo.User.test=INFO,CONSOLE
log4j.logger.org.apache.axis.enterprise.A=FATAL, CONSOLE
##控制台输出类
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
##设置日志信息的格式的类
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
##设置日志输出的格式
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
##文件输出的类
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
##文件输出的路径
log4j.appender.LOGFILE.File=D:\axis.log
##设置是否追加 true表示追加,false表示覆盖
log4j.appender.LOGFILE.Append=true
##设置日志输出格式的类
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
##设置日志输出的格式
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
格式化符号说明:
%p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。
%d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。
%r:输出自应用程序启动到输出该log信息耗费的毫秒数。
%t:输出产生该日志事件的线程名。
%l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,包括类全名、方法、文件名以及在代码中的行数。例如:test.TestLog4j.main(TestLog4j.java:10)。
%c:输出日志信息所属的类目,通常就是所在类的全名。
%M:输出产生日志信息的方法名。
%F:输出日志消息产生时所在的文件名称。
%L::输出代码中的行号。
%m::输出代码中指定的具体日志信息。
%n:输出一个回车换行符,Windows平台为"rn",Unix平台为"n"。
%x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%:输出一个"%"字符。
另外,还可以在%与格式字符之间加上修饰符来控制其最小长度、最大长度、和文本的对齐方式。如:
1) c:指定输出category的名称,最小的长度是20,如果category的名称长度小于20的话,默认的情况下右对齐。
2)%-20c:"-"号表示左对齐。
3)%.30c:指定输出category的名称,最大的长度是30,如果category的名称长度大于30的话,就会将左边多出的字符截掉,但小于30的话也不会补空格。