当前位置: 代码迷 >> Java相关 >> java项目用log4j写日志,但无法写进log文件,帮忙看一下吧!该怎么解决
  详细解决方案

java项目用log4j写日志,但无法写进log文件,帮忙看一下吧!该怎么解决

热度:7897   发布时间:2013-02-25 21:51:49.0
java项目用log4j写日志,但无法写进log文件,帮忙看一下吧!
网上有关java的Log4j写日志大多是web开发,但是我要在一个纯java工程(非web)中写日志。我在网上看到一个例子:
http://blog.csdn.net/tower888/article/details/6452699

我试着用了一下,发现只能在Console写日志,在log4j.properties中配置了很久也没成功在指定的文件中写日志。
我希望在指定位置创建一个log文件,把日志写进去,但就是实现不了。请各位帮我找找原因,谢谢!

这是我的代码,我写了三个java文件,一个log4j.properties,引入了两个jar包:log4j和apache.org.common.logging

1、Log4jConfig类:是用于配置log4j.properties的位置的。
Java code
package testLog;import org.apache.log4j.PropertyConfigurator;public class Log4jConfig {      private static boolean isReload = true;     public static void load() {          String path = Log4jConfig.class.getClass().getResource("/")                  .getPath()                  + "testLog/log4j.properties";          //String path="config/log4j.properties";           System.out.println("log4j configfile path=" + path);          PropertyConfigurator.configureAndWatch(path,1000);        }        private static void reload() {          if (isReload) {              load();          }          isReload = false;      }        public void setReload(boolean flag) {          isReload = flag;      }    }


2、Logger类,用于写日志的。
Java code
package testLog;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class Logger {      private Log log = null;      static{          Log4jConfig.load();//装载log4j配置文件       }      private Logger() {          log = LogFactory.getLog(this.getClass());      }        private Logger(Class c) {          log = LogFactory.getLog(c);      }        private Logger(String className) {          log = LogFactory.getLog(className);      }        public static Logger getLogger() {          return new Logger();      }        public static Logger getLogger(Class c) {                    return new Logger(c);      }        public static Logger getLogger(String className) {          return new Logger(className);      }        public void trace(String info) {          if (log.isTraceEnabled())              log.trace(info);      }        public void debug(String info) {          if (log.isDebugEnabled())              log.debug(info);      }        public void info(String info) {          if (log.isInfoEnabled())              log.info(info);              }        public void warn(String info) {          if (log.isWarnEnabled())              log.warn(info);      }        public void error(String info) {          if (log.isErrorEnabled())              log.error(info);      }        public void fatal(String info) {          if (log.isFatalEnabled())              log.fatal(info);      }        public boolean isTraceEnabled() {          return log.isTraceEnabled();      }        public boolean isDebugEnabled() {          return log.isDebugEnabled();      }        public boolean isInfoEnabled() {          return log.isInfoEnabled();      }        public boolean isWarnEnabled() {          return log.isWarnEnabled();      }        public boolean isErrorEnabled() {          return log.isErrorEnabled();      }        public boolean isFatalEnabled() {          return log.isFatalEnabled();      }  } 


3、log4j.properties,用于配置的,是我用添加普通文件的方式创建的。
其实不用写这么多,但是用了这么多配置语句都不起作用啊!
Java code
 
log_home=../log 
log4j.rootLogger=file,Console 

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=C:\gwlog.log
log4j.appender.logfile.DatePattern=.yyyy-MM-dd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - <%m>%n
  相关解决方案