Où est le bon endroit pour mettre Log4j.propriétés dans un projet Eclipse?

où, dans mon projet Eclipse, dois-je ajouter le fichier log4j.properties pour qu'il fonctionne comme prévu?

54
demandé sur bigGuy 2011-02-22 20:03:08

10 réponses

vous pouvez l'Ajouter où vous voulez, lorsque vous exécutez votre projet, configurer classpath et ajouter l'emplacement du log4j.fichiers de propriétés en cliquant sur: Exécuter->Exécuter Configuration -> [classpath tab] -> cliquez sur les Entrées utilisateur -> Avancé -> Sélectionnez Ajouter un Dossier -> sélectionnez l'emplacement de votre log4j.fichier de propriétés

et puis - > OK - > run

et il devrait être chargé

79
répondu Charbel 2011-02-22 17:08:38

la manière la plus sûre IMO est de pointer vers le fichier dans votre run / debug config

-Dlog4j.configuration=file:mylogging.properties

! Attention: lors de l'utilisation des configurations de lancement eclipse, la spécification du protocole file: est obligatoire.

de cette façon, le bûcheron ne capturera pas de diagraphie.propriétés qui précèdent dans la classpath ou la valeur par défaut dans le JDK.

aussi, envisager d'utiliser réellement le log4j.xml qui a une expression plus riche syntaxe et permettra plus de choses (log4j.xml priorité sur log4j.propriétés.

31
répondu Alain Pannetier 2015-10-02 16:41:04

Ajouter le log4j.fichier de propriétés de la classe d'exécution chemin du projet. Certaines personnes ajoutent ceci à la racine de l'arbre source (de sorte qu'il soit copié à la racine des classes compilées).

Edit: Si votre projet est un projet maven, vous pouvez mettre le log4j.propriétés dans le dossier src/main/resources (et dans le dossier src/test/resources pour les tests de votre unité).

si vous avez plusieurs environnements (par exemple développement et de la production), envie d'enregistrement distinct pour chaque environnement, et vous voulez déployer le même fichier jar (ou war, ou ear) dans chaque environnement (comme dans une compilation pour tous les environnements) alors stockez le log4j.fichier de propriétés en dehors du fichier jar et le mettre dans le chemin de classe pour chaque environnement (configurable par Environnement). Historiquement, je devais inclure un répertoire connu dans chaque environnement dans classpath et y déployer des trucs spécifiques à l'environnement. Exemple, ~ tomcat_user/localclasspath où ~tomcat_user est le répertoire personnel de l'utilisateur qui exécutera l'instance tomcat dans laquelle mon fichier de guerre sera déployé.

12
répondu DwB 2016-11-30 13:42:59

la meilleure façon est de créer un dossier source spécial nommé resources et de l'utiliser pour toutes les ressources, y compris log4j.propriétés. Donc, il suffit de le mettre là.

sur le dossier des ressources Java qui a été créé automatiquement par le projet web dynamique, faites un clic droit et ajoutez un nouveau dossier Source et nommez-le 'Ressources'. Les fichiers ici seront ensuite exportés vers le fichier war dans le répertoire des classes

9
répondu AlexR 2012-06-02 08:39:16

si vous avez une bibliothèque et que vous voulez ajouter le log4j:

  1. créez un dossier nommé" resources " dans votre projet.
  2. créer un .fichier de propriétés nommé log4j
  3. définit les propriétés dans log4j.fichier de propriétés
  4. appuyez sur le bouton droit dans le projet et allez à propriétés->Java Build Path et, enfin, allez à l'onglet" Source".
  5. Push Ajouter un dossier et rechercher les " ressources" dossier créé à l'étape 1.
  6. finition.

(j'ai supposé que vous avez ajouté la bibliothèque log4j.)

PD: désolé pour mon anglais.

6
répondu Fabián Plaza Arnau 2016-06-06 11:26:33

cette question est déjà répondue ici

classpath ne contient jamais de fichiers spécifiques. Il comprend des répertoires et des fichiers jar. Donc, mettez ce fichier dans un répertoire qui est dans votre classpath .

Log4j propriétés ne sont pas (normalement) utilisés dans le développement d'applications (sauf si vous déboguez Eclipse lui-même!). Donc, ce que vous voulez vraiment de construire l'exécutable Java app (Application, WAR, EAR ou autre) et inclure les propriétés Log4j dans le chemin de classe d'exécution.

4
répondu Javascript is GOD 2017-05-23 12:02:41

Mettre log4j.properties dans le moteur d'exécution classpath.

Ce forum certains messages sur les façons possibles de le faire.

4
répondu Matt Ball 2018-06-30 22:39:37

en général je l'ai mis dans un dossier spécial" res "ou "ressources comme déjà dit, mais après pour l'application web, Je copie le log4j.properties avec la tâche ant dans le répertoire WEB-INF/classes. C'est la même chose que de laisser le fichier à la racine du répertoire src/ mais en général, je préfère le voir dans un dossier dédié.

avec Maven, la place habituelle à mettre est dans le dossier src/main/resources comme répondu dans ce autre poste . Toutes les ressources ira à votre construction dans le chemin de classe racine (par exemple target/classes/ )

si vous voulez un logger puissant, vous pouvez également avoir un regard à bibliothèque slf4j qui est une façade logger et peut utiliser l'implémentation log4j derrière.

2
répondu рüффп 2018-06-30 22:35:43

je découvre que l'emplacement du log4j.le fichier de propriétés dépend du type de projet Eclipse.

spécifiquement, pour un projet web dynamique Eclipse, la plupart des réponses qui impliquent l'ajout du log4j.les propriétés du fichier war n'ajoutent pas le fichier properties à l'emplacement correct, en particulier pour Tomcat/Apache.

voici quelques-unes de mes recherches et de ma solution à la question (encore une fois spécifiquement pour un projet web dynamique en cours D'exécution sur Tomcat / Apache 6.0)

  • s'il vous Plaît se référer à cet article autour de la façon dont Tomcat va charger les classes. C'est différent du chargeur de classe normal pour Java. ( https://www.mulesoft.com/tcat/tomcat-classpath ) notez qu'il ne regarde qu'à deux endroits dans le fichier war, WEB-INF/classes et WEB-INF/lib.

  • notez qu'avec un projet web dynamique, il n'est pas sage de stocker votre .fichier de propriétés dans le build/..répertoire / classes, car ce répertoire est effacé à chaque fois que vous nettoyez-construisez votre projet.

  • Tomcat n'a pas de poignée .fichiers de propriétés dans L'emplacement WEB-INF/lib.

  • vous ne pouvez pas stocker le log4j.propriétés fichier dans le répertoire src, comme Eclipse abstrait que le répertoire loin de votre vue.

  • Le seul moyen que j'ai trouvé pour résoudre ce est de modifier la construction et Ajouter un répertoire supplémentaire qui sera éventuellement charger dans le répertoire WEB-INF/classes dans le fichier de guerre. Spécifiquement....

(1) Faites un clic droit sur votre projet dans l'Explorateur de projet, sélectionnez "Nouveau" -> "dossier". Vous pouvez attribuer le nom, mais la norme dans ce cas est "ressources". Le nouveau dossier apparaît au niveau de la racine de votre projet.

(2) Déplacer le log4j.propriétés fichier dans ce nouveau dossier.

(3) Faites un clic droit sur le projet et sélectionnez 'Build-Path'->'Configure Build Path'. Sélectionnez l'onglet 'Sources'. Cliquez sur "Ajouter un Dossier". Accédez à votre nouveau dossier que vous avez créé à l'étape (1) ci-dessus. Sélectionnez "OK".

(4) Retour à la vue Explorateur de projet eclipse, notez que le dossier a maintenant déménagé à la zone 'ressources Java' (c'est-à-dire qu'il n'est plus à la racine en raison de l'abstraction de présentation eclipse).

(5) Propre à construire votre projet.

(6) Pour valider le .le fichier de propriétés existe maintenant dans le WEB-INF / classes dans votre fichier de guerre, exportez un fichier de guerre à un endroit facile (clic droit projet -> Export -> fichier de guerre) et vérifiez le contenu. Notez que le log4j.le fichier de propriétés apparaît maintenant dans le WEB-INF/classes.

(7) Faites la promotion de votre projet auprès de Tomcat/Apache et notez que log4j fonctionne maintenant.

maintenant que log4j travaille, commence l'exploitation forestière, résout les problèmes du monde, prendre un peu de temps libre, et profiter d'une boisson adulte savoureuse.

1
répondu Robert Bender 2014-04-10 22:01:38

Vous ne voulez pas avoir l'log4j.propriétés emballés avec votre projet déployable -- c'est une mauvaise idée, comme d'autres affiches ont mentionné.

trouvez l'installation root Tomcat que Eclipse pointe quand elle exécute votre application, et ajoutez le log4j.propriétés fichier à l'endroit approprié là-bas. Pour Tomcat 7, le bon endroit est

${TOMCAT_HOME} / lib

1
répondu Erica Kane 2014-07-17 04:03:13