java web使用log4j无法写入到日志文件

项目环境

1.项目类型:java web

2.web容器:tomcat

3.框架:spring

4.调用代码:spring配置的定时任务,任务执行类用@Component注入(开始还以为是这里出了问题 ̄□ ̄||)

主要现象

1.启动tomcat后,发现日志无法写入

2.删除日志文件再次启动,日志文件没有新建

3.单独在类中执行main方法里的log操作可以写入到文件中

4.启动tomcat后,日志可以输入到控制台,但是不能写入到文件中

log4j.properties

####写入到文件!!没反应######
log4j.logger.exceptions=info, exceptions
log4j.appender.exceptions=org.apache.log4j.DailyRollingFileAppender
log4j.appender.exceptions.DatePattern=‘.‘yyyyMMdd
log4j.appender.exceptions.File=/data/wapage/log/appmanager/exceptions.log
log4j.appender.exceptions.layout=org.apache.log4j.PatternLayout
log4j.appender.exceptions.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} | %m%n
######输入到控制台!!有输出###########
log4j.logger.test=info, A
log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} | %m%n

解决方案

问题在于日志文件的路径配置上

文件路径要指定绝对路径不能指定相对路径

配置成相对路径是,eclipse下能生成相对应的日志文件,但是web容器启动的时候是找不到这个路径的(为什么找不到,不是很清楚)。

感谢解决方案作者:feiyeguohai http://feiyeguohai.iteye.com/blog/1824961

时间: 2024-08-02 20:32:51

java web使用log4j无法写入到日志文件的相关文章

Java Web实现使用浏览器从服务器下载文件(后台)

Java Web实现 使用浏览器从服务器下载文件. 下面实现两种情况的下载,需求如下: 需求(一):1.用户在页面填写表单. 2.填写完成后,选择下载,将表单内容发往后台. 3.后台根据内容生产一个文件,发送给前端. 4.前端成功下载文件到本地. 此需求简单来说就是,用户在页面上填写内容,然后将内容转变成文件的形式. 后台设计思路:1.首先拿到前端发送过来的内容. 2.将内容解析,存放至缓冲区. 3.设置响应头. 4.将缓冲区里的内容,以流的方式写出. 代码实现: public void dow

JAVA中使用log4j及slf4j进行日志输出的方法

JAVA中输出日志比较常用的是log4j,这里讲下log4j的配置和使用方法,以及slf4j的使用. 一.下载log4j的架包,并导入项目中,如下: 二.创建log4j.properties配置文件 1.log4j配置文件的位置: (1)如果是java project项目,则在项目的根目录下创建log4j.properties而不是在src目录下. (2)如果是java web项目,则在src目录下创建log4j.properties配置文件,因为这个时候tomcat会去默认的加载这个配置文件,

JAVA Web之Log4j的使用问题

本来今天想试试Log4j的,所以刚切入的时候就先百度了下有关Log4j的内容,以及基本的配置方法. 一开始我虽然是新建的java web的项目,但我在项目中仍然新建的是类,所以像网上如:http://www.codeceo.com/article/log4j-usage.html 一样创建一个Test类来进行测试应该是没有问题的,可是并不是这样,我遇到了一个非常奇葩的问题.<1>在部署运行的过程中出现了500的错误,错误原因是can't find main class(找不到主类).当时遇到这

log4j配置文件动态指定日志文件名称

我们在项目当中经常会使用log4j进行日志记录,偶尔会遇到一些要求,比如日志文件名称按照启动参数动态配置,而不去修改log4j.xml,比较简单的一种做法是,通过设置系统属性的方式实现,代码: 1 if(args.length>=0){ 2 System.setProperty("log4fFile", args[0]); 3 }else{ 4 System.setProperty("log4fFile","log/runtime.log"

Java Web应用中自动实时检测资源文件内容变化

在Java Web应用中,我们经常需要配置文件来定制系统行为,这些配置文件可能包括:类路径下的文件和文件夹.非类路径下的绝对路径和相对路径的文件和文件夹,在分布式环境中,还需要通过HTTP从统一集中的Web服务器中获得配置信息,如何对这些配置信息进行自动加载并实时检测变化呢? Java分布式中文分词组件 - word分词已经实现了这个功能,我们看看是如何实现的: package org.apdplat.word.util; import java.io.BufferedReader; impor

执行系统命令并且将输出写入到日志文件的shell脚本

大概需求是这样的,执行aix系统usysfault命令取故障灯信息,但是这个命令似乎只有root用户才能执行,其他用户执行就报错.想尽了各种办法赋权都以失败告终,所以想到写shell脚本用root用户来执行将结果写入到log文件中,然后我们来读文件取数据就好了,不用执行aix死活都不让我们执行的命令. shell脚本如下: ! /usr/bash while true #循环执行 do { date +"%Y-%m-%d %H:%M:%S" #取当前日期和时间 uname #要执行的命

java web 读取数据库数据写入Excel返回浏览器下载

1 @RequestMapping(value = "/download", method = RequestMethod.GET) 2 public void downstudents(HttpServletRequest request, HttpServletResponse response) throws IOException { 3 // 一.从后台拿数据 4 List<Dept> list = null; 5 list=ds.list(); 6 try {

Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下: 解决方案: [java] view plain copy Date dt=new Date();//如果不需要格式,可直接用dt,dt就是当前系统时间 DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//设置显示格

java web 使用json要加入的jar 文件

如果有类似错误可以参考,版本不同,记得看下里面包名是否和报错信息对应的上. commons-beanutils-1.8.0.jar不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean commons-collections.jar 不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedM