在我的 Maven 项目中读取 log4j.properties 时出错
Error reading log4j.properties in my Maven project
我对 log4j 有疑问。我正在尝试使用它在我的 Rest Web 服务中记录一些操作的文件。我正在使用 jersey 框架在 java 中开发 Web 服务。我正在使用 Eclipse 和 Maven 项目。
我已经创建了我的 MWlogs.properties 并放置在 src 下。这个文件的内容是:
# LOG4J daily rolling log files configuration
log4j.rootLogger=DEBUG, RollingAppender
# RollingAppender configuration
log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=./logs/mobiwallet.log
log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n
然后在服务包下,我尝试测试 log4j,但 运行ning 不正确。我在这个class下的服务包是:
...
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
...
@Path("/UserActions")
public class UserActions {
static final Logger logger = Logger.getLogger(UserActions.class);
...
public MW_USER_DATA_QUERY_RESPONSE reqMWUser(InputStream userRequest){
PropertyConfigurator.configure("MWlogs.properties");
...
logger.info("Consulta de MW USER!!!!!");
return reply;
}
}
当我尝试 运行 项目时,Tomcat 启动了一些错误:
log4j:ERROR Could not read configuration file [MWlogs.properties].
并且当执行 logger.info 时 Tomcat 还显示以下错误消息:
log4j:WARN No appenders could be found for logger (service.UserActions).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info
Tomcat is launching some error when I try to run the project:
log4j:ERROR Could not read configuration file [MWlogs.properties].
似乎堆栈跟踪没有被记录,或者您只是没有向我们显示它。但很可能还有一个 FileNotFoundException
与上述消息一起被抛出。
PropertyConfigurator.configure(String)
将在文件系统中查找文件,从工作目录开始。
根据您的属性文件的位置,它将是一个 class 路径资源,应该通过 URL 读取,PropertiesConfigurator
有一个重载的 confiure(URL)
的方法。所以将调用更改为
PropertyConfigurator.configure(getClass().getResource("/MWlogs.properties"));
假设您的 MWlogs.properties
被构建到 class 路径的根目录(它应该如此),以上应该有效。我测试了它。如果由于某种原因它仍然不起作用,您可以尝试将文件放在 src/main/resources
中,或者您可以尝试将它明确地放在 tomcat
中的应用程序中
<tomcat>/webapps/exploded-war/WEB-INF/classes/MWlogs.properties
我对 log4j 有疑问。我正在尝试使用它在我的 Rest Web 服务中记录一些操作的文件。我正在使用 jersey 框架在 java 中开发 Web 服务。我正在使用 Eclipse 和 Maven 项目。
我已经创建了我的 MWlogs.properties 并放置在 src 下。这个文件的内容是:
# LOG4J daily rolling log files configuration
log4j.rootLogger=DEBUG, RollingAppender
# RollingAppender configuration
log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=./logs/mobiwallet.log
log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n
然后在服务包下,我尝试测试 log4j,但 运行ning 不正确。我在这个class下的服务包是:
...
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
...
@Path("/UserActions")
public class UserActions {
static final Logger logger = Logger.getLogger(UserActions.class);
...
public MW_USER_DATA_QUERY_RESPONSE reqMWUser(InputStream userRequest){
PropertyConfigurator.configure("MWlogs.properties");
...
logger.info("Consulta de MW USER!!!!!");
return reply;
}
}
当我尝试 运行 项目时,Tomcat 启动了一些错误:
log4j:ERROR Could not read configuration file [MWlogs.properties].
并且当执行 logger.info 时 Tomcat 还显示以下错误消息:
log4j:WARN No appenders could be found for logger (service.UserActions).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info
Tomcat is launching some error when I try to run the project:
log4j:ERROR Could not read configuration file [MWlogs.properties].
似乎堆栈跟踪没有被记录,或者您只是没有向我们显示它。但很可能还有一个 FileNotFoundException
与上述消息一起被抛出。
PropertyConfigurator.configure(String)
将在文件系统中查找文件,从工作目录开始。
根据您的属性文件的位置,它将是一个 class 路径资源,应该通过 URL 读取,PropertiesConfigurator
有一个重载的 confiure(URL)
的方法。所以将调用更改为
PropertyConfigurator.configure(getClass().getResource("/MWlogs.properties"));
假设您的 MWlogs.properties
被构建到 class 路径的根目录(它应该如此),以上应该有效。我测试了它。如果由于某种原因它仍然不起作用,您可以尝试将文件放在 src/main/resources
中,或者您可以尝试将它明确地放在 tomcat
<tomcat>/webapps/exploded-war/WEB-INF/classes/MWlogs.properties