2016-09-27 29 views
-1

这里下面我用一个样品app.ication展现eraror,它永远不会产生上述的log4j/SLF4J无法从属性文件中读取希望工作液请

package com.example; 

import org.apache.log4j.Logger; 
import org.apache.log4j.PropertyConfigurator; 
public class logtester { 
    static final Logger logger = Logger.getLogger(logtester.class); 

    @Value("${log4j.appender.R.MaxFileSize}") 

    public static void main(String[] args) { 
     PropertyConfigurator.configure("logProperties.properties"); 

     logger.debug("Sample debug message"); 
     logger.info("Sample info message"); 
     logger.warn("Sample warn message"); 
     logger.error("Sample error message"); 
     logger.fatal("Sample fatal message"); 
     // System.out.write("a2nd method"); 
     PropertyConfigurator.configure("application.properties"); 
     //System.out.write("weocme to usa"); 
     logger.debug("Sample debug message"); 
     logger.info("Sample info message"); 
     logger.warn("Sample warn message"); 
     logger.error("Sample error message"); 
     logger.fatal("Sample fatal message"); 
     // System.out.write("a2nd method"); 


    } 

} 

日志文件是我的主要文件现在我将张贴我的prpoperties文件

我用了两个检查,如果其中的任何工作,但nbuth没有

application.properties文件

log4j.appender.FILE=org.apache.log4j.RollingFileAppender 
log4j.appender.FILE.File=TVK.log 
log4j.appender.FILE.MaxFileSize=512KB 
log4j.appender.FILE.MaxBackupIndex=3 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%og4j.appender.NotConsole=org.apache.log4j.RollingFileAppender 
log4j.appender.NotConsole.fileName=/some/path/to/a/fileName.log 
log4j.appender.NotConsole.maxFileSize=20MB 

另一个属性文件:log4jproperties.properties

log4j.appender.FILE=org.apache.log4j.RollingFileAppender 
log4j.appender.FILE.File=TVK.log log4j.appender.FILE.MaxFileSize=512KB 
log4j.appender.FILE.MaxBackupIndex=3 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m% 
log4j.appender.NotConsole=org.apache.log4j.RollingFileAppender 
log4j.appender.NotConsole.fileName=/some/path/to/a/fileName.log 
log4j.appender.NotConsole.maxFileSize=20MB 
log4j.appender.MAIN_LOG=org.apache.log4j.RollingFileAppender 
log4j.appender.MAIN_LOG.File=${catalina.base}/logs/webtop.log 
log4j.appender.MAIN_LOG.layout=com.j256.ormlite.Log4JSimpleLayout 
log4j.appender.MAIN_LOG.MaxFileSize=10MB 
log4j.appender.MAIN_LOG.MaxBackupIndex=5 
log4j.appender.MAIN_LOG.append=true 
log4j.rootCategory=ALL, MAIN_LOG 
+0

你认为'@ Value'注释正在做什么? – Andreas

+0

第二个属性文件似乎定义了一个'log4j.rootCategory',但它应该是'log4j.rootLogger'。查看['PropertyConfigurator']的javadoc(https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html)。它只分配给appender'MAIN_LOG',那么为什么你期望appender使用'FILE'和'NotConsole'?加载第二个文件只会更新这两个文件,所以为什么你要加载第二个文件来改变它呢? – Andreas

回答

2

有多种PropertyConfigurator.configure()方法(见https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html)。 您使用的那个从您启动应用程序的目录中的文件系统中查找文件“logProperties.properties”。 如果该文件是打包的应用程序,你应该使用的配置方法,以输入流:

PropertyConfigurator.configure(
    logtester.class.getResourceAsStream("/logProperties.properties"); 

无论如何,如果log4j的找不到属性文件,它应该显示一些错误:

log4j:ERROR Could not read configuration file [application.properties]. 
java.io.FileNotFoundException: application.properties (The system cannot find the file specified) 

你有类似的东西吗?

+0

是我做的我已经改变了路径但是它给了我 说明\t资源\t路径\t位置\t类型 方法的getResourceAsStream(字符串)是未定义的类型logtester \t logtester.java \t /演示/ src目录/主/ java/com/example \t line 14 \t Java问题 – venkat

+0

mmh,getResourceAsStream是类的一个方法Class:你是否在类名后面看到'.class'?并确保使用适当的情况下:LogTester会更好 –