我正在使用Netbeans在ejb模块中开发我的java企业应用程序。
当我运行"MyClass.java"时,我只查看错误级别。
MyEnterpriseApplication-ejb:源包:
package com.mycompany;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class MyClass {
public static final Logger logger = LogManager.getLogger(MyClass.class);
public static void main(String[] arg) {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:context.xml");
logger.info("level info");
logger.error("level error");
logger.debug("level debug");
logger.warn("level warn");
}
}
当我运行这个类…
输出:
------------------------------------------------------------------------
Building MyEnterpriseApplication-ejb 1.0-SNAPSHOT
------------------------------------------------------------------------
[dependency:copy]
[resources:resources]
[debug] execute contextualize
Using 'UTF-8' encoding to copy filtered resources.
Copying 1 resource
[compiler:compile]
Compiling 1 source file to Z:NetBeansProjectsMyEnterpriseApplicationMyEnterpriseApplication-ejbtargetclasses
[exec:exec]
20:26:23.885 [main] ERROR com.mycompany.MyClass - level error
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 2.328s
Finished at: Mon May 27 20:26:23 CEST 2013
Final Memory: 14M/162M
------------------------------------------------------------------------
如何添加log4j.xml文件并添加到spring上下文文件?是这条路吗?
使用log4j version2.0,您不需要调用DomConfigurator。(我认为它已经不存在了。)配置文件应该被命名为log4j2.xml,如果它在类路径中,将被拾取。
你的maven依赖项在我看来是正确的。
您的示例MyClass代码看起来也很好。(尽管您不需要ApplicationContext进行日志记录)
您需要告诉应用程序加载您想要使用的XML配置:
在这个示例中,文件必须位于类路径中,并且应该称为log4j.xml
package javabeat.net.log4j;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
public class YourClass {
private static Logger logger = Logger.getLogger
(Log4jXmlTest.class);
public static void main (String args[]){
DOMConfigurator.configure("log4j.xml");
logger.info("Test Log");
logger.error("level error");
logger.debug("level debug");
logger.warn("level warn");
}
}