Java 读取Maven项目中的log4j.properties时出错

Java 读取Maven项目中的log4j.properties时出错,java,logging,jersey,log4j,tomcat7,Java,Logging,Jersey,Log4j,Tomcat7,我对log4j有问题。我正试图使用它来登录一个文件,以便在我的RESTWeb服务中执行一些操作。我正在用jersey框架用java开发web服务。我正在使用Eclipse和一个Maven项目 我已经创建了我的MWlogs.properties并放置在src下。此文件的内容是: # LOG4J daily rolling log files configuration log4j.rootLogger=DEBUG, RollingAppender # RollingAppender confi

我对log4j有问题。我正试图使用它来登录一个文件,以便在我的RESTWeb服务中执行一些操作。我正在用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,但它没有正确运行。我在本课程的“服务包”项下有:

...
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启动了一些错误:

log4j:ERROR Could not read configuration file [MWlogs.properties].
log4j:错误无法读取配置文件[MWlogs.properties]。

看起来不是stacktrace没有被记录下来就是你没有给我们看。但很可能还会抛出一个
FileNotFoundException
,与上述消息一起出现

将从工作目录开始在文件系统中查找文件

根据属性文件的位置,它将是一个类路径资源,应该通过URL读取,该URL
PropertiesConfiguration
具有重载的
confure(URL)
方法。所以把电话改成

PropertyConfigurator.configure(getClass().getResource("/MWlogs.properties"));
假设您的
MWlogs.properties
构建到类路径的根目录(它应该是根目录),上述操作应该可以正常工作。我测试过了。如果出于某种原因,它仍然无法工作,您可以尝试将文件放入
src/main/resources
中,也可以尝试将其显式放入tomcat中的应用程序中

<tomcat>/webapps/exploded-war/WEB-INF/classes/MWlogs.properties
/webapps/war/WEB-INF/classes/MWlogs.properties

在main中,您可以尝试添加
BasicConfigurator.configure()()可能重复的