11
votes

Devrait être log4.properties être sur la classe de classe?

J'ai des problèmes de poser mon fichier log4j.properties sur la classe de classe. Je peux l'utiliser lorsque je développe (Eclipse Indigo), mais lorsque j'exporte mon application en tant que pot, je ne peux pas.

J'ai fait à la main un fichier manifeste.mf pour le pot exporté: p> xxx pré>

et ensuite avec mettre le pot sur cette organisation de fichier: p> xxx pré>

Quand j'essaie d'exécuter app.jar, ils trouvent log4j.jar mais pas log4j.properties:

log4j.rootLogger=INFO, stdout, file

PATTERN=[%d] [%p] [%c{1}]: %m%n

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=${PATTERN}

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.File=${logger_file_path}
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=${PATTERN}


0 commentaires

6 Réponses :


11
votes

Ne pas mettre le log4j.properties code> dans le path de classe, mais le répertoire contenant ce fichier.

Class-Path: lib lib/log4j-1.2.15.jar


2 commentaires

J'ai déjà corrigé la modification des programmes log4j.properties dans le "dossier" (où le pot existe) et change le chemin de classe vers ". Lib / log4j-1.2.15.jar". Avant cela, j'ai essayé plusieurs dossiers de «liber» (par exemple / lib /, lib / ,./lib/) et aucun d'entre eux n'a travaillé.


Un vieux fil, mais je veux juste ajouter que cette approche fonctionne vraiment. Une autre bonne chose à propos de cette approche est qu'un utilisateur peut réellement modifier le niveau de journal s'ils veulent, car le fichier de configuration est en dehors de n'importe quel pot.



1
votes

Ajouter log4j.properties à app.jar .


1 commentaires

Pour l'instant, je préfère l'avoir à l'extérieur



12
votes

Il y a trois façons de savoir.

  1. Ajouter log4j.properties à app.jar
  2. Mettez le log4j.properties dans le "dossier" (où le pot existe) et modifie la trajectoire de classe sur .Lib / log4j-1.2.15.jar .
  3. mettre le log4j.properties sur le dossier nommé "Conf" par exemple, puis modifiez le chemin de classes sur ./ conf / . .

    J'ai essayé, ça marche.


1 commentaires

Merci beaucoup. Mon anglais est très mauvais!



17
votes

Un moyen de plus de faire ceci: -dlog4j.configuration = fichier: "./ log4j.properties"


1 commentaires

Pour log4J version 2 Utilisation: -Dlog4j.configurationFile = fichier: "Yourpathhere / log4j2.xml"



-1
votes

essayer d'exécuter:

javar -jar -dlog4j.configuration = fichier: "./ log4j.properties" app.jar


0 commentaires

0
votes

J'ai essayé la réponse de Jesper et, au début, cela ne fonctionnait pas. Ensuite, j'ai essayé avec xxx

et cela a fonctionné après cela.


0 commentaires