log4j的使用

项目需要,否定了前期确定的使用JDK的Logging框架改用Log4J来完成日志功能,以前也使用log4j但是当时没有记录下来。现在把log4j的使用方法简单记录如下,以备日后所需。

log4j是一个Apache开源项目,其目前的最新版本为1.2,使用log4j最重要的就是它的配置文件log4j.properties,在你的项目目录下新建一个文件,命名为log4j.properties,最好是使用它的配置文件的样例文件(在它的下载安装包内有),需要配置的元素有

1.使用哪个级别来输出log信息

在程序中所需要输出的信息是分不同等级的,越高级别的信息则说明这个错误越严重,通过配置可以控制程序以那一等级输出,log4j的所有等级顺序是DEBUG < INFO < WARN < ERROR < FATAL,如果你配置你的log级别是INFO,则比INFO低的级别DEBUG便不会输出到log中(需要在程序编写过程中采用相对应的输出级别进行输出,才可以通过配置文件较好的控制)。例如在一般编程过程中都需要对程序进行调试,调试过程中需要输出一些信息来查看程序运行情况,这个级别应该是DEBUG级别的,

Logger.debug("This is debugging");

而对于程序运行过程中的异常则可以用ERROR级别的来输出,

catch(Exception e) {

  Logger.error(e.printStackTrace());

}

明白了吧,就是将程序的输出情况根据其严重情况分等级,通过配置文件可以控制在哪种情况下输出哪个等级的。

首先需要配置的是log4j.rootLogger这个元素,它配置的全局输出级别,同时还会指明log的输出方式。因为log4j支持对不同包、不同类的输出级别进行控制(也就是同一个项目中,不同package的log输出级别可以不同),而如果没有设置针对某特定包的输出级别,那么该包将采用全局输出级别进行输出。例如

包a.b

包a.c

配置有log4j.rootLogger=DEBUG,则该包都会使用DEBUG级别进行输出。

对于不同包的输出级别设置是采用log4j.logger这个元素来配置,后面跟上你要配置的包名即可,如需要配置上面的a.b这个包为INFO级别的,

log4j.logger.a.b=INFO

就就可以了

2.log信息输出到哪里

通过

log4j.rootLogger=DEBUG,stdout, disk

来实现,上面我就配置了两个输出目的地,一个叫做stdout,一个叫做disk,顾名思义一个输出到控制台上,一个输出文件中。那么如何规定其输出方式呢

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

这样就指定了stdout为控制台输出方式

log4j.appender.disk=org.apache.log4j.RollingFileAppender

指定了文件输出方式,更为详细的文件配置如下

log4j.appender.disk.File=./log/test.log
    log4j.appender.disk.MaxFileSize=100KB
    log4j.appender.disk.MaxBackupIndex=1

 

3.log信息输出的格式是怎么样的

采用默认的就可以

log4j.appender.disk.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n
    其输出了代码行数,调用方法等有用的信息。

 

最后,如何在程序中使用log4j呢?

其实有两步,一个是配置,另一个就是获取logger,然后就可以通过logger.info()等方法输出log信息了。

public class MyLog {

private static Logger logger = Logger.getLogger(HelloLog4j.class.getName()); //获取logger


 public static void main(String[] args) {
  // TODO Auto-generated method stub
  PropertyConfigurator.configure(args[0]); // 配置
  logger.info("hello test");  //输出log信息
  System.out.println("hello test");
  logger.debug("debuging");  //输出log信息
 }

}

 

最后还必须要提一下的就是另一个log框架

commons-logging

这也是apache的一个开源项目,但是它和其他的log框架可不一样,它的log功能的实现并不是很强大,只是最简单的基础功能,但是它的好处就是可以集合各个流行的log框架,而且对于log功能的使用更加简单方便。使用方法如下(以log4j的集成为例)

首先将log4j和commons-logging两个jar包导入工程路径,配置好log4j.properties配置文件,在程序中需要使用log的地方只需要写上下面的代码

private static Log log = LogFactory.getLog(YourClass.class);

然后便可以进行log输出了

它的配置都还在log4j.properties文件中进行,而且不需要显示的调用

PropertyConfigurator.configure(args[0]); // 配置
    这样的配置语句,是不是很方便啊!

 

在这里我只是很粗的大概说了一下,在今后使用到的时候看一下能记起来怎么用就达到目的了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值