LOG4J 的初始化

Log4j 是使用的最广泛的logging框架之一。
我碰到的最多人问的问题就是:为什么用了Log4j之后,我的程序占用那么多的CPU?是不是Log4j的设计有问题啊?

这里我把Log4j常见的一些问题列出来,供大家参考:

Log4j告诉我说没有正确初始化,怎么办?

现象:
运行程序时出现
log4j: No appenders could be found for category (some.category.name).
log4j: Please initialize the log4j system properly.

原因:
Log4j的日志输出需要一个appender,appender的类型有stdout,file,database table,syslog等。
如果指定的Logger没有并且它所有的祖先也没有appender的话,那么就会出上面这个错误。
记住: log4j是没有缺省的target appender的。

解决方法:
最简单的就是所有Logger的祖先设置appender。
在程序运行目录下面创建一个文件:log4j.properties
内容为:
log4j.rootCategory=DEBUG, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{dd MMM yyyy HH:mm:ss,SSS}] [%-5p] [%t] [%x] [%C] [%m]%n

然后在你的程序中用
 private Category logger = Category.getRoot(); //最easy

或者
 private Logger logger= Logger.getLogger(classname);

就搞定了

待续...

在Java项目中,可以通过以下步骤来初始化log4j系统: 1. 首先,确保你的项目中已经包含了log4j的依赖库。你可以在项目的构建文件(如pom.xml)中添加以下依赖项: ```xml <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> ``` 2. 在项目的源代码中,创建一个log4j配置文件。这个文件通常以".properties"或者".xml"为后缀名。以下是一个简单的log4j配置文件示例(log4j.properties): ```properties # 设置日志级别为INFO log4j.rootLogger=INFO, stdout # 定义输出到控制台的Appender log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n ``` 3. 在你的Java代码中,通过调用`PropertyConfigurator`类的`configure()`方法来加载log4j配置文件。例如: ```java import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class MyClass { // 创建日志记录器 private static final Logger logger = Logger.getLogger(MyClass.class); public static void main(String[] args) { // 加载log4j配置文件 PropertyConfigurator.configure("path/to/log4j.properties"); // 使用日志记录器打印日志 logger.info("This is an informational message."); } } ``` 在以上示例中,通过`PropertyConfigurator.configure()`方法指定了log4j配置文件的路径。然后,你可以使用`logger`对象记录不同级别的日志消息。 这就是初始化log4j系统的基本步骤。你可以根据自己的需要进行进一步的配置和使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值