86 votes

log4j: WARN Aucun ajout de correcteur n'a pu être trouvé pour l'enregistreur dans web.xml

J'ai déjà mis le log4jConfigLocation dans web.xml, mais quand même, je reçois un avertissement

 log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
 

qu'est-ce que j'ai manqué?

     <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>

            /WEB-INF/applicationContext.xml

        </param-value>
    </context-param>

 <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/classes/log4j.properties</param-value>
  </context-param>

  <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
        <servlet-name>suara2</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    </servlet>
    <servlet-mapping>
        <servlet-name>suara2</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
 

44voto

CodeGoat Points 552

Si c'est tout le fichier log4j.properties, il semble que vous ne créez jamais de journal. Vous avez besoin d'une ligne comme:

 log4j.rootLogger=debug,A1
 

30voto

Alain O'Dea Points 6587

J'ai eu log4j.propriétés au bon endroit dans le classpath et encore cet avertissement avec tout ce qui est utilisé directement. Code à l'aide de log4j par le biais de commons-logging semblait être bien pour une raison.

Si vous avez:

log4j.rootLogger=WARN

Modifier:

log4j.rootLogger=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n

Selon http://logging.apache.org/log4j/1.2/manual.html:

La racine de l'enregistreur est anonyme, mais peut être consulté à l'Enregistreur.getRootLogger() la méthode. Il n'y a pas de valeur par défaut appender attaché à la racine.

Ajoutant que "console", appender à la rootLogger obtient cette plainte à disparaître.

19voto

prabhat Points 91

Vous obtenez cette erreur lorsque vos log4j.properties ne sont pas présents dans classpath.

Cela signifie que vous devez déplacer le fichier log4j.properties dans le dossier src et définir la sortie dans le dossier bin afin qu'au moment de l'exécution, log4j.properties lise le dossier bin et que votre erreur soit résolue facilement.

7voto

Aaron Digulla Points 143830

Vous verrez cet avertissement si log4j ne peut trouver aucun fichier "log4j.properties" ou "log4j.xml" n'importe où.

7voto

MikeF Points 61

Ou bien, vous pourriez faire ce que je faisais et définir le consignateur avant que le fichier de configuration du journal ait été chargé. Ce serait comme on dit: "Mettre la charrue avant les bœufs."

Dans le code:

 public static Logger logger = Logger.getLogger("RbReport");
 

... plus tard

 PropertyConfigurator.configure(l4j);
logger = Logger.getLogger("RbReport");
 

Le correctif consistait à initialiser le consignateur une fois la configuration chargée.

Pour les geeks, c’était "Putting Descarte b4 d cheval".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X