Log4j-写入自己的日志文件时出现问题

Log4j-写入自己的日志文件时出现问题,log4j,Log4j,Spring3.0Web应用程序。已将以下Log4j属性文件放置在WAR文件的/WEB-INF/classes目录中 log4j.rootLogger=DEBUG, A1 log4j.appender.A1=org.apache.log4j.FileAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c -

Spring3.0Web应用程序。已将以下Log4j属性文件放置在WAR文件的/WEB-INF/classes目录中

log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.A1.File=C:\\Testing.log  
有一个表单控制器,它通过记录器记录表单中的项目

@Controller 
@RequestMapping("/FlowPartOne")
public class FlowPartOneFormController {

    private final Logger logger = Logger.getLogger(this.getClass());

    @RequestMapping(method=RequestMethod.POST)
    public String processForm(@ModelAttribute("pageOneData") PageOneData pageOneData) {
        logger.info("Page One, Line One>" + pageOneData.getDataLineOne() + "<");
        logger.info("Page One, Line Two>" + pageOneData.getDataLineTwo() + "<");
        return "FlowPartOne";
    }

} 
@控制器
@请求映射(“/FlowPartOne”)
公共类FlowPartOneFormController{
私有最终记录器=Logger.getLogger(this.getClass());
@RequestMapping(method=RequestMethod.POST)
公共字符串processForm(@ModelAttribute(“pageOneData”)pageOneData pageOneData){

logger.info(“第一页,第一行>”+pageOneData.getDataLineOne()+“”+pageOneData.getDataLineTwo()+”如果Glassfish本身使用log4j,则在应用程序启动之前,它的类加载器将启动运行,指向应用程序服务器日志文件,因此根本不会加载配置文件

您可以尝试在/WEB-INF/lib中包含log4j.jar,以便在应用程序的类加载器中加载您自己的私有副本,这应该会选择您的配置,因为应用程序内服务器类加载本地类加载器优先于父类(应用程序服务器)


但这可能取决于应用服务器的类加载,我曾在JBoss上工作过,在那里需要额外的步骤,如激活类加载程序隔离。

如果Glassfish本身使用log4j,则在应用程序启动之前,它的类加载程序将启动运行,指向应用服务器日志文件,因此您的配置文件不会启动根本就没钱

您可以尝试在/WEB-INF/lib中包含log4j.jar,以便在应用程序的类加载器中加载您自己的私有副本,这应该会选择您的配置,因为应用程序内服务器类加载本地类加载器优先于父类(应用程序服务器)


但这可能取决于应用服务器的类加载,我曾在JBoss上工作过,在那里需要额外的步骤,如激活类加载程序隔离。

属性文件的名称是什么