关于log4j和commons-logging

 

Log4j用法  
将Log4j和commons.logging的jar包加到构建路径中(classpath),我出现过这么一个问题javaEE5自带的commons.logging不可用后来发现路径应修改为:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
然后写一个log4j.properties 文件放在根路径。
log4j.properties 文件完整的示例如下:
##定义rootLogger,级别为DEBUG,输出地为stdout
       log4j.rootLogger=DEBUG,stdout
       ##定义用于记录错误信息的Logger:ErrorLog
       log4j.logger.ErrorLog=ERROR , errLog
       ##定义用于记录业务信息的Logger:BusinessLog
       log4j.logger.BusinessLog=INFO, businessLog
      
## 设置 stdout ##
       log4j.appender. stdout =org.apache.log4j.ConsoleAppender
##输出到控制台
log4j.appender.stdout.Target=System.out
##设置为灵活的布局模式。
log4j.appender. stdout.layout= org.apache.log4j.PatternLayout
       ##设置转换模式。类似于C中输出函数(printf())中的转换模式。
log4j.appender. stdout.layout.ConversionPattern=%r [%t] %-5p %C.%M() - %m%n
                    
## 设置 errLog ##
##指定Appender 名称为errLog,并且每天产生一个日志文件。
       log4j.appender.errLog= org.apache.log4j.DailyRollingAppender
       ##指定输出地为文件error.log
       log4j.appender.errLog.file=error.log
       ##指定日期格式
       log4j.appender.errLog.DatePattern=’.’yyyy-MM-dd
       log4j.appender.errLog.layout=org.apache.log4j.PatternLayout
       log4j.appender.errLog.ConversionPattern= %p -- %d{yyyy-MM-dd HH:mm:ss,SSS} - %c – Method:%m%n
## 设置 businessLog ##
##指定Appender 名称为businessLog,并且每天产生一个日志文件。
 
  
注: # 为注释符号
可见log4j中有三种组件 Logger, Appender 和 Layout。详细解释如下.
 
Logger:
定义的格式: log4j.[loggername]=[level], appenderName1, appenderName2
level 是日至的级别 DEBUG<INFO<WARN<ERROR<FATAL
       如果定义级别为ERROR,则只有级别比它高的才会执行,即:执行FATAL,当然也包括指定的级别,即 ERROR。
appenderNamex 是日志的输出地。由后面的Appender定义。
ex:
       定义rootLogger,级别为DEBUG
       log4j.rootLogger=DEBUG
       定义用于记录错误信息的Logger:ErrorLog
       log4j.logger.ErrorLog=ERROR , errLog
       定义用于记录业务信息的Logger:BusinessLog
       log4j.logger.BusinessLog=INFO, businessLog
      
Appender:
org.apache.log4j.ConsoleAppender 控制台
org.apache.log4j.FileAppender 文件
org.apache.log4j.DailyRollingAppender 每天产生一个日志文件
org.apache.log4j.RollingFileAppender 文件到达指定大小时产生一个新的文件
org.apache.log4j.ConsoleAppender 将日志信息以流的方式发送到任意指定地方
 
定义格式:
              log4j.appender.appenderName=上述的类名
              log4j.appender.appenderName.option1=value1
              ……..
log4j.appender.appenderName.optionN=valueN
       以此类推。
ex:
       指定Appender 名称为errLog,并且每天产生一个日志文件。
       log4j.appender.errLog=org.apache.log4j.DailyRollingAppender
       指定输出地为文件error.log
       log4j.appender.errLog. file=error.log
       指定日期格式
       log4j.appender.errLog.DatePattern=’.’yyyy-MM-dd
       指定Layout,有关设置见Layout
       log4j.appender.errLog.layout=org.apache.log4j.PatternLayout
 
 
Layout:
       org.apache.log4j.HTMLLayout 用HTML表格的形式布局
       org.apache.log4j.PatternLayout 可以灵活的指定布局
org.apache.log4j.SimpleLayout 包含是指信息的级别和信息字符串
org.apache.log4j.TTCCLayout 包含日志产生的时间,线程,类别的信息
 
常用的为 PatternLayout .
      
定义格式
       log4j.appender.appenderName.layout=上述类名
       log4j.appender.appenderName.option1=value1
       …….
       log4j.appender.appenderName.optionN=valueN
ex:
       设置为灵活的布局模式。
       log4j.appender.errLog.layout=org.apache.log4j.PatternLayout
       设置转换模式。类似于C中输出函数(printf())中的转换模式。
       log4j.appender.errLog.ConversionPattern= %p -- %d{yyyy-MM-dd HH:mm:ss,SSS} - %c – Method:%m%n
 
       转换模式常用参数:(详细信息参见Log4j Conversion Pattern )
       %p 日志信息的级别
       %d 日志信息产生的时间
       %c 日志信息所在类名
       %m日志的具体信息
       %n 输出一个换行符
      
Apache 通用日志包
Log4j 仅仅是 Apache 通用日志包的一种实现。
要在代码中使用它还要借助 Apache 通用日志包。
前面日志的级别是在Apache 通用日志包定义的。并由日志实现指定级别(如:log4j.properties中指定)
FATAL 非常严重的错误,导致系统中止。
ERROR 其他运行时的错误。
WARN 警告
INFO  有意义的信息
DEBUG 系统运行时更加详细的信息
TRACE 更加详细的信息
 
 
 
在代码中,通常以下列方式使用:
       //通过 org.apache.commons.logging.LogFactory接口静态方法
//public static void getLog(String name)
//或
//public static void getLog(Class class)
//取得o rg.apache.commons.loggin.Log 对象。
 
Log logger=LogFactory.getLog(String name )  //指定Logger的Name
       //Log logger=LogFactory.getLog(Class class) //指定的类,用 ClassName.class ,如:PeclinicDAO.class
      
       //记录日志信息
       logger.fatal(Object msg)
       logger.fatal(Object msg, Throwable t)
       logger.error(Object msg)
       logger.error(Object msg, Throwable t)
       其他类似。
 
       Log接口的一组方法可以判断允许的日志级别
       logger.isFatalEnabled()
       logger.isErrorEnabled()
       logger.isWarnEnabled()
       其他类似。
       代码示例:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
public class HelloWorld{
       pirvate static final Log logger=LogFactory.getLog(HelloWorld.class)
      
       public void sayHello(String greet){
              if(logger.isInfoEnabled()){
                     logger.info(greet);
              }// end if
} // end sayHello
} // end HelloWorld
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想要使用Commons LoggingLog4J 2进行日志记录,可以按照以下步骤进行配置: 1. 首先,您需要添加以下依赖项到您的项目中: ``` <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.x.x</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.x.x</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> ``` 其中,`log4j-api`和`log4j-core`是Log4J 2的核心依赖项,而`commons-logging`则是Commons Logging的依赖项。 2. 在项目的classpath下添加一个`log4j2.xml`配置文件,例如: ``` <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> ``` 这个示例配置文件将日志记录到控制台,并将日志级别设置为`info`。 3. 在代码中使用Commons Logging进行日志记录,例如: ``` import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class MyClass { private static final Log LOG = LogFactory.getLog(MyClass.class); public void doSomething() { LOG.info("Doing something..."); } } ``` 在这个示例中,`MyClass`使用Commons Logging来获取日志记录器实例,并在`doSomething()`方法中记录一条日志。 运行应用程序时,您应该可以在控制台上看到与配置文件中定义的日志级别匹配的日志消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值