J'ai essayé de configurer log4j avec le fichier `log4j.properties '.
Tout fonctionne mais j'ai attiré un étrange avertissement:
log4j: WARN Aucun appender n'a pu être trouvé pour le journal (org.Apache.http.impl.conn.tsccm.ThreadSafeClientConnManager). log4j: WARN Veuillez initialiser correctement le système log4j. log4j: WARN Voir http://logging.Apache.org/log4j/1.2/faq.html#noconfig pour plus d'informations.
Je ne pouvais pas comprendre ce qui ne va pas avec ça. Tout devrait fonctionner.
Contenu de log4j.properties :
# Root logger option
log4j.rootLogger=warn, stdout, file
# Direct log messages to stdout
log4j.appender.stdout=org.Apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.Apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
# Direct log messages to a log file
log4j.appender.file=org.Apache.log4j.RollingFileAppender
log4j.appender.file.file=logs/oms_test.log
log4j.appender.file.MaxFileSize=2MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.Apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
log4j.appender.debugfile=org.Apache.log4j.RollingFileAppender
log4j.appender.debugfile.file=logs/oms_test-debug.log
log4j.appender.debugfile.layout=org.Apache.log4j.PatternLayout
log4j.appender.debugfile.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
log4j.logger.com.softserve.edu=DEBUG, debugfile
log4j.logger.com.my.app.somepackage.subpackage.ClassName=INFO
Voici le projet frappé:
EDIT:
Je charge log4j.properties à partir du code: _
PropertyConfigurator.configure("src/resourses/log4j.properties");
Logger.getRootLogger();
Edit2:
J'ai essayé de changer d'emplacement log4j.properties
à un emplacement différent en tant que src/main/resourses
ou src/test/resourses
, src/resourses
et de modifier le chargement à partir du code.
Et toujours ça échoue:
log4j:ERROR Could not read configuration file [log4j.properties].
Java.io.FileNotFoundException: log4j.properties (The system cannot find the file specified)
at Java.io.FileInputStream.open(Native Method)
at Java.io.FileInputStream.<init>(FileInputStream.Java:138)
at Java.io.FileInputStream.<init>(FileInputStream.Java:97)
at org.Apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.Java:372)
at org.Apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.Java:403)
at com.softserve.edu.SearchingOrdersPageTest.setUp(SearchingOrdersPageTest.Java:31)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.Java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.Java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.Java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.Java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.Java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.Java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.Java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.Java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.Java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.Java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.Java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.Java:184)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.Java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.Java:236)
at org.Eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.Java:50)
at org.Eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.Java:38)
at org.Eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.Java:467)
at org.Eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.Java:683)
at org.Eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.Java:390)
at org.Eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.Java:197)
log4j:ERROR Ignoring configuration file [log4j.properties].
J'ai eu le même problème, et je l'ai résolu quand j'ai mis log4j.xml dans WEB-INF/classes
Cochez cette réponse et répondez initialisez log4j .
Placez log4j.properties
dans bin
(classpath) peut résoudre votre problème.
Où que vous mettiez log4j.properties, assurez-vous de l'appeler en utilisant propertyconfigurator comme indiqué ci-dessous
PropertyConfigurator.configure("D:\\logs\\log4j.properties");
final Logger LOGGER = Logger.getRootLogger();
LOGGER.info("sddd");
LOGGER.debug("ffff");**