【问题标题】:How to create a log4j.xml file for the dynamic web project?如何为动态 Web 项目创建 log4j.xml 文件?
【发布时间】:2013-09-13 07:17:47
【问题描述】:

实际上,我正在尝试为我的动态 Web 项目实现 log4j.file。 这是我的web.xml

这里我给出了web.xml 仅用于日志文件的代码

web.xml

<!-- Log File-->

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>
  <listener>
    <listener-class>com.ss.logFile.startupListener.StartupListener</listener-class>
  </listener>
  <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/classes/log4j.properties</param-value>
  </context-param>
</web-app>

log4j.properties

log4j.rootLogger=ERROR, stdout, rollingFile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=WEB-INF/logs/application.log
log4j.appender.rollingFile.MaxFileSize=512KB
log4j.appender.rollingFile.MaxBackupIndex=10
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.rollingFile.Encoding=UTF-8

启动监听器

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
@WebServlet("/StartupListener")
public class StartupListener extends HttpServlet implements ServletContextListener {
    private static final long serialVersionUID = 1L;

    public void init(ServletConfig config) throws ServletException {    
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
    }
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        java.util.logging.Logger logger = null;
        String log4jFile = sce.getServletContext().getInitParameter("log4jFileName");
        DOMConfigurator.configure(sce.getServletContext().getRealPath(log4jFile));
        logger = LogManager.getLogger(StartupListener.class.getName());
        logger.debug("Loaded: " + log4jFile);   
    }
}

先生,其实我是 log4j 的新手,所以我不知道如何编写 log4j.xml 文件以及该文件的确切位置。请帮我解决这个问题。提前致谢

【问题讨论】:

  • 我不确定是否需要 Log4jConfigListener。如果你把配置文件放在 /WEB-INF/classes/log4j.properties,log4j 应该会自动获取文件
  • 我需要创建 log4j.xml 文件的步骤,我必须设置日志文件的路径并存储数据。
  • 使用这个链接mkyong.com/struts2/struts-2-log4j-integration-example这个链接会给你一个完整的使用log4j的信息

标签: java xml logging


【解决方案1】:

根据您发布的配置。您没有使用 xml 而是使用属性文件。正如 Adam Dyga 所说,只要 log4j.properties 文件在类路径中,应用程序就会自动获取它。您不需要显式加载。要设置日志文件的位置,

log4j.appender.rollingFile.file=D:/MyWEBLogs/MyWEB.log

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2017-06-01
    • 2015-02-22
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多