1.1.1 Apache Commons-logging使用流程
1)将common-logging.jar 包加入到环境变量或者classpath。
2)导入所有需的commongs-logging类
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
|
3)在需要使用logging的类中获取Log实例。
private static Log log = LogFactory.getLog(Test.class);
|
注意:这里定义的是static成员,以避免产生多个实例。 LogFactory.getLog()方法的参数使用的是当前类的class,这是目前被普通认为的最好的方式。为什么不写成LogFactory.getLog(this.getClass())?因为static类成员访问不到this指针!
4)使用Logger对象的debug,info,fatal...方法。
log.debug("Debug info.");
|
注意:
每个需要写日志的java类都得创建一个static logger实例,如果java类很多的话,那创建这些static对象的开销将非常大,所以最后自己写一个log类,有一个静态方法可以得到logger实例:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class Logs {
/**
* Define a static Log variable,
*/
private static Log log;
static{
log=LogFactory.getLog(Logs.class);
}
/**
* Get the log object
* @return Log
*/
public static Log getLogger(){
return log;
}
}
上面代码使用commons-logging生成一个静态log实例,以后的程序就可以这样来做:
Logs.getLogger().info("begin Action: UserBaseInfoAction.getSingleUserInfo()");
DBSession.begin();
String fname=userForm.getFname();
userForm=UserBaseInfoBusiness.getSingleUserInfo(DBSession.getSession(),fname);
DBSession.commit();
request.setAttribute("userInfo",userForm);
Logs.getLogger().info("end Action: UserBaseInfoAction.getSingleUserInfo()");
Log4j的实现方法类似,初始化类可以这样写:
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Logs {
private static Logger log logger;
/**
* Define a static Log variable,
*/
static{
try{
logger=Logger.getLogger(LogInit.class);
//DOMConfigurator.configure("E:/study/log4j/log4j.xml");//加载.xml文件
//PropertyConfigurator.configure("log4j.properties");//加载.properties文件 }catch(Exception ex){
System.out.println("can't init the Logger, caused by: "+ex);
}
}
/**
* Get the log object
* @return Log
*/
public static Logger getLogger(){
return logger;
}
}
应用程序中的调用是完全相同的。
1.1.2 Apache Commons-logging使用示例
Test.java
package sample;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class Test {
private static Log log = LogFactory.getLog(Test.class);
public void log(){
log.debug("Debug info.");
log.info("Info info");
log.warn("Warn info");
log.error("Error info");
log.fatal("Fatal info");
}
public static void main(String[] args) {
Test test = new Test();
test.log();
}
}
|
结果:
DEBUG sample.Test.log(Test.java:13) Debug info.
INFO sample.Test.log(Test.java:14) Info info
WARN sample.Test.log(Test.java:15) Warn info
ERROR sample.Test.log(Test.java:16) Error info
FATAL sample.Test.log(Test.java:17) Fatal info
当没有任何配置文件(.properties)时,就如同上的结果。此时,它使用的是使用简易日志包装类(SimpleLog)。
下面加入包与配置文件,使其使用log4j。
<!--[if !supportLists]-->1)
<!--[endif]-->
加入配置文件commons-logging.properties和log4j.properties。
<!--[if !supportLists]-->2)
<!--[endif]-->
将 log4j.jar 和 common-logging.jar 两个包加入到环境变量或者classpath 。
3)Test.java内容不变。
<!--[if !supportLists]-->3) <!--[endif]-->commons-logging.properties
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog
|
4)log4j.properties
log4j.rootLogger=info, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
|
结果:
INFO [main] - Info info
WARN [main] - Warn info
ERROR [main] - Error info
FATAL [main] - Fatal info
|
分享到:
相关推荐
7. **日志记录**:Log4j或SLF4J的日志处理。 8. **实用工具类**:日期时间处理、字符串操作、文件操作等。 最后,"下载及使用说明.txt"可能是对资源的下载和使用进行指导,而"更多Java资料学习.url"则可能指向一个...
项目可能集成了Log4j、Logback或SLF4J等日志框架,记录系统运行时的事件。 10. **单元测试与持续集成**:为了保证代码质量,项目应该包含完善的单元测试,可能使用JUnit、Mockito等工具。同时,持续集成工具如...
通过slf4j,你可以选择任何你喜欢的日志实现(如log4j、logback等),而无需修改代码。在实际项目中,合理地利用日志系统,能够有效地排查问题,提高开发效率。 在学习这个资源包时,你需要逐步掌握以下内容: 1. ...
在工具和技术应用上,他熟练运用JUnit进行调试,使用log4j进行日志管理,掌握SVN进行项目整合,熟悉MyBatis进行数据库管理。他还了解Tomcat、Apache服务器配置,并能熟练使用MyEclipse和Eclipse等开发工具。在实际...
* 熟练运用 JUnit,Debug 进行程序调试、log4j 进行日志管理、SVN 项目整合、MyBatis 数据库管理 * 熟悉 Tomcat、Apache 等服务器配置 项目经验 * 伟业网上电商系统 + 软件环境:Oracle10g、Tomcat7.0、Struts 2.0...
- **软件工具**:熟练使用JUnit进行程序调试、log4j进行日志管理、SVN进行项目整合、MyBatis进行数据库管理。 - **服务器配置**:熟悉Tomcat、Apache等服务器配置。 - **开发工具**:熟练掌握MyEclipse/Eclipse等...
* 熟练运用 JUnit,Debug 进行程序调试、log4j 进行日志管理、SVN 项目整合、MyBatis 数据库管理 * 熟悉 Tomcat、Apache 等服务器配置 * 熟练掌握 MyEclipse/Eclipse 等开发工具 六、项目经验 * 2013/06 -- 至今 ...
- 指数和对数:`exp`, `log`, `log10`, `sqrt`,以及复数函数 `abs`, `angle`, `conj`, `imag`, `real`。 - 数值处理:`fix`, `floor`, `ceil`, `round`, `rem`, `sign` 等用于处理数值。 - 随机数生成:`zeros`,...
10. **监控与日志**:使用Actuator进行应用性能监控,以及Logback、Log4j2的日志管理。 11. **云原生支持**:Docker容器化、Kubernetes编排、Cloud Foundry平台集成。 12. **前端技术**:Vue.js、React、Angular等...