我有一个只有EJB(EJB3.0)且没有WAR模块的EAR,服务器是Linux上的JBOSS 4.3。
我想使用服务器外部的log4j.properties文件初始化LOG4J,并使用slf4j作为外观。
初始化我的log4j的最佳方法是什么?
提前致谢
最佳答案
我已经在Startup中进行了初始化,并将log4j放在META-INF文件夹中。只需使用没有Slf4j的log4j。 (EJB 3.1)
我希望下面的代码有所帮助;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
@Singleton
@Startup
public class InitClass {
@PostConstruct
private void log4jIlkle() {
String log4jProp = yourlog4jPath;//My path definition maybe put more flexible path: "../applications/DeployName/META-INF/log4j.properties";
File logFile = new File(log4jProp);
if (logFile.exists()) {
System.out.println("Log4j init: " + log4jProp);
PropertyConfigurator.configure(log4jProp);
}
else {
System.err.println("*** " + log4jProp + " file not found, initialize with default settings");
BasicConfigurator.configure();
}
}
}