Tomcat App déclare & # 8220; Impossible de configurer le système de journalisation. Aucun log.properties n'a été trouvé. & # 8221;

StackOverflow https://stackoverflow.com/questions/1628234

  •  06-07-2019
  •  | 
  •  

Question

J'ai une application tomcat intégrée et chaque fois que je la lance, cette erreur est imprimée deux fois sur la console:

Unable to configure the logging system.  No log.properties was found.

Cela semble stupide, mais j’ai fait quelques recherches dans le stackoverflow et je n'arrive pas à trouver une personne qui rencontre ce problème.

Ma classe principale ressemble à peu près à ceci:

public class AuthServerEntryPoint {
  static {
    org.apache.log4j.PropertyConfigurator.configure("conf/log4j.properties");
  }
public static void main(String[] args) {
  // ...
}

" conf / log4j.properties " contient une configuration apparemment valide:

log4j.appender.mainAppend=org.apache.log4j.ConsoleAppender
log4j.appender.mainAppend.layout=org.apache.log4j.PatternLayout
log4j.appender.mainAppend.layout.ConversionPattern=%d %p [%t] %c -- %m%n 

log4j.appender.fileAppend=org.apache.log4j.FileAppender
log4j.appender.fileAppend.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppend.layout.ConversionPattern=%d %p [%t] %c - %m%n 
log4j.appender.fileAppend.file=logs/myservice.log

log4j.rootLogger = info, fileAppend
log4j.logger.com.mycompany.myservice = debug, fileAppend

Et la journalisation fonctionne réellement - c’est-à-dire que les journaux sont correctement écrits dans myservice.log. Alors qu'est-ce qui donne?

Merci! -Carl

Était-ce utile?

La solution

Par application Tomcat intégrée , voulez-vous dire que vous démarrez Tomcat à partir de code Java et utilisez la classe org.apache.catalina.startup.Embedded ?

Si oui, je suppose que Tomcat pourrait ne pas être en mesure de trouver son fichier de configuration de journalisation configuré dans catalina.sh (ou son équivalent) lors de l'utilisation des scripts:

LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

Ce qui est étrange, c’est que ce fichier s’appelle logging.properties , et non log.properties . Je ne suis donc vraiment pas sûr. Cependant, je n'ai pas vérifié les sources de Tomcat, peut-être qu'ils font une sorte de magie noire à l'intérieur.

Pourriez-vous simplement essayer de renommer $ CATALINA_BASE / conf / logging.properties en log.properties (ou non) et de le placer sur le chemin de classe de votre application ( ou pour définir -Djava.util.logging.config.file )?

Autres conseils

Par défaut, log4j recherchera un fichier de propriétés de journalisation sur le chemin de classe. Placez le fichier de configuration des propriétés de journalisation de votre application Web dans son répertoire WEB-INF / classes. par exemple

$CATALINA_HOME/webapps/<yourApp>/WEB-INF/classes/log4j.properties

C’est la méthode simple permettant à une application Web d’utiliser Log4j. Elle est recommandée par la documentation référencée. Et c’est l’approche que j’utilise moi-même pour la journalisation webapp.

Il existe également d'autres moyens de configurer la journalisation Log4j sur Tomcat. Il est possible que votre Tomcat ait été (partiellement) configuré pour utiliser l’un d’eux, mais que quelque chose n’a pas été fait correctement.

La configuration de la journalisation log4j de Tomcat via les propriétés système est une option qui évite de savoir où se loge log4j ... et ce qui ne va pas. Mais vous êtes alors obligé de créer / utiliser un script de lancement personnalisé ou de vous rappeler de définir des variables d’environnement avant de lancer Tomcat.

Références:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top