我是log4j的新手。我有一个servlet Log4jInit
,它在启动时加载。
public class Log4jInit extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init(ServletConfig config) {
System.out.println("Log4J for entities initializing");
ServletContext context = getServletContext();
String log4jLocation = context.getInitParameter("log4jConfigLocation");
PropertyConfigurator.configure(log4jLocation);
}
}
我已按照以下方式宣布我的web.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>com.zeomega.jiva_product_entities</display-name>
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.zeomega.jiva_product_entities.Log4jInit</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>${HOME}/Log4J/log4j.properties</param-value>
</context-param>
<servlet-mapping>
<servlet-name>standard-real-time</servlet-name>
<url-pattern>/restful/*</url-pattern>
</servlet-mapping>
</web-app>
但它会抛出错误,说我没有在我正在使用的Java类中初始化logger。我的猜测是它没有拿起log4j.properties
文件路径。任何人都可以帮我知道如何在战争之外导入log4j文件吗?
我在运行应用程序时面临以下错误:
log4j:WARN No appenders could be found for logger (com.zeomega.jiva_product_entities.JivaProductEntity).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info
答案 0 :(得分:0)
请尝试以下从LOG4J 1.2 website复制的程序:
- 将资源字符串变量设置为log4j.configuration系统属性的值。指定的首选方法 默认初始化文件是通过log4j.configuration系统实现的 属性。如果系统属性log4j.configuration不是 define,然后将字符串变量资源设置为其默认值 &#34; log4j.properties&#34;
- 尝试将资源变量转换为URL。
- 如果资源变量无法转换为URL,例如由于MalformedURLException,则从中搜索资源 classpath通过调用 org.apache.log4j.helpers.Loader.getResource(resource,Logger.class) 返回一个URL。注意字符串&#34; log4j.properties&#34; 构成格式错误的网址。
醇>
E.g。对于tomcat:
export TOMCAT_OPTS="-Dlog4j.configuration=foobar.txt"
其中foobar.txt
是配置文件的路径。