Java 为独立应用程序初始化log4j
我是log4j的新手。这就是我所拥有的。在一个独立的JAVA应用程序中,我有大约20个不同包中的文件。 我正在尝试使用和写入日志文件 下面是我的log4j.properties文件,它位于我的类路径中:Java 为独立应用程序初始化log4j,java,logging,log4j,Java,Logging,Log4j,我是log4j的新手。这就是我所拥有的。在一个独立的JAVA应用程序中,我有大约20个不同包中的文件。 我正在尝试使用和写入日志文件 下面是我的log4j.properties文件,它位于我的类路径中: log4j.appender.R = org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File = /ParentFolder/ChildFolder/application.log log4j.appender.R.Appe
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = /ParentFolder/ChildFolder/application.log
log4j.appender.R.Append = true
log4j.appender.R.DatePattern = '.'yyy-MM-dd
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
以下是在我的main方法中初始化日志记录的代码
final String LOG_FILE = "C:/eclipse_workspace/lib/log4j.properties";
Properties logProp = new Properties();
try
{
logProp.load(new FileInputStream (LOG_FILE));
PropertyConfigurator.configure(logProperties);
logger.info("Logging enabled");
}
catch(IOException e)
{
System.out.println("Logging not enabled");
}
在应用程序的每个java类中,我都有以下代码
import org.apache.log4j.*;
private static final Logger logger = Logger.getLogger(TheActualClassName.class);
但是我在运行应用程序时收到以下警告消息
log4j:WARN找不到记录器(com.xxx.myApp.MainProgram.MyFileName)的追加器。
log4j:警告请正确初始化log4j系统。
log4j:有关更多信息,请参阅警告
我做错了什么??日志文件“application.log”不会生成如果您要使用名为
log4j.properties
的文件,并且它位于应用程序的类路径上,则在首次初始化时(首次加载记录器时),甚至不需要调用PropertyConfiguration
或DOMConfigurator
错误消息似乎表明未加载您的配置
将VM参数
-Dlog4j.debug
添加到应用程序中,让log4j在启动时吐出一大堆信息,其中包括它尝试加载的文件以及在配置中找到的值。可能需要以下行:
# Set root logger level to INFO and appender to R.
log4j.rootLogger=INFO, R
根记录器始终可用,并且没有名称
从1.2.7版开始,log4j(使用LogManager
类)首先在类路径中查找log4j.xml
。如果log4j.xml
不存在,则log4j(使用LogManager
类)在类路径中查找log4j.properties
log4j.properties
和log4j.xml
。现在没有错误,我在指定的文件夹中也有一个日志文件。谢谢你,保罗