Log4J学习【二】第一个日志示例
来源:互联网 发布:ubuntu iso grub cfg 编辑:程序博客网 时间:2024/05/09 21:26
首先下载Log4J包,最新的代码版本为Log4J 1.2。当然,Log4j 2现在也发布了,但是使用的有限,这个我们后面再慢慢介绍。下载地址为:
http://logging.apache.org/log4j/1.2/download.html
下载完成后解压。Log4J是一个很单纯的代码包,他本身不再依赖任何其他的框架。所以,直接把log4j-1.2.17.jar拷贝到应用classpath中即可。
现在来尝试使用一下Log4J:
package cd.itcast.log4j;
import org.apache.log4j.Logger;
public class LogTest1 {
static Logger logger = Logger.getLogger(LogTest1.class);
static public void main(String[] args) {
logger.debug("my first log4j info");
}
}
这里请注意,在导入Logger类的时候,需要选择org.apache.log4j.Logger,而不要使用java.util.logging.Logger;因为JDK4之后,java自身也提供了一套日志框架。
从字面上简单的介绍一下这段代码。首先,我们使用Logger的静态方法getLogger通过传入LogTest1的类型,得到一个Logger对象实例,很容易理解,这个logger实例就是对LogTest1这个类的专属日志记录器;紧接着,在方法中,我们直接使用这个Logger实例的debug方法,输出我们的日志信息。
完成代码后,运行,控制台打印:
log4j:WARN No appenders could be found for logger (cd.itcast.log4j.LogTest1).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
很明显,这是一段警告,而不是我们想要输出的日志信息,这是为什么呢?原因很简单,因为我们并没有告诉Log4j,我们要把日志输出到哪里,或者换句话说,我们没有对Log4j做任何基础的配置,他不知道怎么去处理我们应用中的日志信息。要做到这点非常简单,只需要在代码中加一句:
package cd.itcast.log4j;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
public class LogTest1 {
static Logger logger = Logger.getLogger(LogTest1.class);
static public void main(String[] args) {
BasicConfigurator.configure();
logger.debug("my first log4j info");
}
}
我们在代码中增加了一句话,从字面意思上看非常简单,我们使用了一个基础配置器,并调用其configure()方法,即配置方法完成了配置。再次运行应用,控制台输出:
0 [main] DEBUG cd.itcast.log4j.LogTest1 - my first log4j info
可以看到,这次不光输出了我们需要的my first log4j info,还输出了程序运行的线程:main,我们信息的级别DEBUG,和信息所属的类:cd.itcast.log4j.LogTest1。
就这么简单,通过这个例子,其实我们已经演示完了Log4j的使用方式,要把Log4J加入你的应用,只需要这么几步:
1,导入Log4J的包;
2,完成Log4J的配置。在上面的应用中,我们仅仅是使用了最简单也最缺乏灵活性的BasicConfigurator来完成配置,后面我们会逐步看到更灵活的配置方式,但是配置总是需要的一个步骤。
3,对于每一个需要日志输出的类来说,通过Logger.getLogger方法得到一个专属于这个类的日志记录器,
4,使用日志记录器完成日志信息的输出;在上面的例子中,我们仅仅看到了logger的debug方法,后面会看到更多的日志记录方式。
http://logging.apache.org/log4j/1.2/download.html
下载完成后解压。Log4J是一个很单纯的代码包,他本身不再依赖任何其他的框架。所以,直接把log4j-1.2.17.jar拷贝到应用classpath中即可。
现在来尝试使用一下Log4J:
package cd.itcast.log4j;
import org.apache.log4j.Logger;
public class LogTest1 {
static Logger logger = Logger.getLogger(LogTest1.class);
static public void main(String[] args) {
logger.debug("my first log4j info");
}
}
这里请注意,在导入Logger类的时候,需要选择org.apache.log4j.Logger,而不要使用java.util.logging.Logger;因为JDK4之后,java自身也提供了一套日志框架。
从字面上简单的介绍一下这段代码。首先,我们使用Logger的静态方法getLogger通过传入LogTest1的类型,得到一个Logger对象实例,很容易理解,这个logger实例就是对LogTest1这个类的专属日志记录器;紧接着,在方法中,我们直接使用这个Logger实例的debug方法,输出我们的日志信息。
完成代码后,运行,控制台打印:
log4j:WARN No appenders could be found for logger (cd.itcast.log4j.LogTest1).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
很明显,这是一段警告,而不是我们想要输出的日志信息,这是为什么呢?原因很简单,因为我们并没有告诉Log4j,我们要把日志输出到哪里,或者换句话说,我们没有对Log4j做任何基础的配置,他不知道怎么去处理我们应用中的日志信息。要做到这点非常简单,只需要在代码中加一句:
package cd.itcast.log4j;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
public class LogTest1 {
static Logger logger = Logger.getLogger(LogTest1.class);
static public void main(String[] args) {
BasicConfigurator.configure();
logger.debug("my first log4j info");
}
}
我们在代码中增加了一句话,从字面意思上看非常简单,我们使用了一个基础配置器,并调用其configure()方法,即配置方法完成了配置。再次运行应用,控制台输出:
0 [main] DEBUG cd.itcast.log4j.LogTest1 - my first log4j info
可以看到,这次不光输出了我们需要的my first log4j info,还输出了程序运行的线程:main,我们信息的级别DEBUG,和信息所属的类:cd.itcast.log4j.LogTest1。
就这么简单,通过这个例子,其实我们已经演示完了Log4j的使用方式,要把Log4J加入你的应用,只需要这么几步:
1,导入Log4J的包;
2,完成Log4J的配置。在上面的应用中,我们仅仅是使用了最简单也最缺乏灵活性的BasicConfigurator来完成配置,后面我们会逐步看到更灵活的配置方式,但是配置总是需要的一个步骤。
3,对于每一个需要日志输出的类来说,通过Logger.getLogger方法得到一个专属于这个类的日志记录器,
4,使用日志记录器完成日志信息的输出;在上面的例子中,我们仅仅看到了logger的debug方法,后面会看到更多的日志记录方式。
0 0
- Log4J学习【二】第一个日志示例
- Log4J学习【二】第一个日志示例
- SSIS 学习之旅 第一个SSIS 示例(二)
- protobuf二:第一个c++示例
- protobuf二:第一个c++示例
- Log4J--日志第一发
- 手把手教你appium_第一个示例日志解读
- [原]手把手教你appium_第一个示例日志解读
- log4j日志配置(二)
- Log4j 日志配置示例详解
- Log4j 日志配置示例详解
- Log4j 日志配置示例详解
- Log4j 日志配置示例详解
- Log4j 日志配置示例详解
- Android自动化测试MonkeyRunner(二)------第一个示例
- 第一个struts2示例
- struts2 第一个示例
- DWR第一个示例
- 框架操作,frameset ,frame,隐藏左边栏,jquery操作框架
- 常见的二叉树面试题
- 如何去掉C#字符串中的所有空格
- navigationItem的leftBarButtonItem和rightBarButtonItem隐藏
- Dreamweaver CS5无法启动,Designer.xml错误,一直弹错
- Log4J学习【二】第一个日志示例
- JPA视频集合
- mongodb的NUMA CPU架构问题
- 正则表达式操作json数据通过键(Key)修改值(Value)
- C# 设计模式
- security
- oracle power 函数
- closure-library 第一章 Closure介绍
- Java中类的初始化顺序