【Maven】利用pom.xml使用log4j教程

Maven工程下导入log4j

Maven的核心功能便是合理叙述项目间的依赖关系。

通过pom.xml文件添加依赖,配置jar包,而不用手动去导入jar包,十分便利又易于管理。
当我们需要添加jar包时,首先可以在maven仓库中查询对应的jar包(https://mvnrepository.com/)
在这里插入图片描述

找到所需的jar包,点击对应版本:
在这里插入图片描述

即可得到maven中pom.xml里依赖配置<dependence>信息,将该jar包依赖配置到pom.xml中就导入了该jar包:
在这里插入图片描述

log4j.properties配置文件
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

配置如下:

log4j.rootLogger = debug,stdout,D,E

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%m%n

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n

testLog4j.java
在这里插入图片描述
getLogger方法有两种形式:
在这里插入图片描述
在这里插入图片描述

运行结果:
在这里插入图片描述

由于在配置文件中配置了日志的输出文件路径,因此可以查看到输出的日志文件:
在这里插入图片描述
在这里插入图片描述

关于通用日志工具common logging与log4j?

一个使用common logging的代码案例:
在这里插入图片描述
Apache common logging是一种log的框架接口,它本身并不实现log记录的功能,而是在运行时动态查找目前存在的日志库,调用相关的日志函数,从而隐藏具体的日志实现。log4j是具体的日志实现,真正负责"写"日志的这个功能。

因此,common logging本身不是log,你可以把它看做是一个日志的接口;而log4j是日志的实现。

使用common logging方式实现日志,主要的原因在于可以忽略底层的日志实现,或者说为以后的日志实现库的更换提供透明界面;
你可以考虑下,假设从log4j更换为logback,势必要重写所有原本使用log4j的源代码。而使用common logging的情况下,只需要更换jar包,而不需要对源代码做任何改动。

做日志的时候一般是两者一起用,commons-logging工作原理做接口,log4j做实现,应用起来比单独的使用log4j要简单。

commons-logging工作原理:

  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;
    (以上顺序不保证完全准确,请参考官方文档)
    总之,commons-logging总是能找到一个日志实现类,并且尽可能找到一个"最合适"的日志实现类.。

参考:
https://blog.csdn.net/azheng270/article/details/2173430/
https://blog.csdn.net/cloudeagle_bupt/article/details/53000615

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值