Java 有人能告诉我如何使用log4j.properties文件吗?

Java 有人能告诉我如何使用log4j.properties文件吗?,java,log4j,Java,Log4j,我是log4j的新手。我有一个servletLog4jInit,它在启动时加载 public class Log4jInit extends HttpServlet { private static final long serialVersionUID = 1L; public void init(ServletConfig config) { System.out.println("Log4J for entities initializing");

我是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>

请尝试从复制的以下过程:

  • 将资源字符串变量设置为log4j.configuration系统属性的值。指定 默认初始化文件通过log4j.configuration系统 财产。如果系统属性log4j.configuration不是 定义,然后将字符串变量资源设置为其默认值 “log4j.属性”
  • 尝试将资源变量转换为URL
  • 如果资源变量无法转换为URL,例如由于错误的FormedUrlexception,则从 通过调用 org.apache.log4j.helpers.Loader.getResource(resource,Logger.class) 返回一个URL。注意字符串“log4j.properties” 构成格式不正确的URL
  • 例如,对于tomcat:

    export TOMCAT_OPTS="-Dlog4j.configuration=foobar.txt"
    

    其中
    foobar.txt
    是配置文件的路径。

    请注意,如果您刚刚开始,如果您有选择,可能最好使用slf4j。这是由log4j的原作者重新设计的,具有更大的灵活性和更好的性能,您可以与使用log4j的现有代码集成。我不能这样做,因为它是现有的应用程序,我必须进行更改它是log4j版本1还是2?@LeosLiterak它的版本1何时发出此警告?你能找出它是在运行Log4jInit之前还是之后吗?好吧,你应该重新表述你的问题。目前是“有人能帮我知道如何在war之外导入log4j文件吗?”。并显示错误。
    export TOMCAT_OPTS="-Dlog4j.configuration=foobar.txt"