2009-02-13 6 views
0

J'ai un problème avec un projet que j'essaie d'exécuter en utilisant le conditionneur one-jar pour simplifier le processus de déploiement.
Sans l'emballage, tout fonctionne correctement et la configuration de l'enregistrement est parfaitement chargée, mais dans l'emballage, seule une partie de la configuration est appliquée.La configuration de journalisation Java n'a été prise en compte que partiellement

Donc, voici les logging.properties J'utilise:

handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler 
.level= INFO 
java.util.logging.FileHandler.pattern = C:\\MyPath\\logging.csv 
java.util.logging.FileHandler.limit = 50000 
java.util.logging.FileHandler.count = 1 
java.util.logging.FileHandler.formatter = my.package.logging.Formatter 
java.util.logging.ConsoleHandler.level = INFO 
java.util.logging.ConsoleHandler.formatter = my.package.logging.Formatter 

Et Dans ma classe principale, voici comment je le charge:

public class MainClass { 
    public static void main(final String[] args) { 
    try { 
     LogManager.getLogManager().readConfiguration(
     new MainClass().getClass().getResourceAsStream("logging.properties")); 
     // main process goes here. 
    } catch(Exception e) { 
     // Exception handling 
    } 
    } 
} 

Le niveau du journal, ainsi que le FileHandler Les patterns sont bien compris car la journalisation se termine dans le bon fichier, mais en sortie XML en ligne, ce qui me fait penser que le formateur n'est pas chargé car il génère normalement un format CSV.

Pourrait-il être lié à un problème de chemin de classe? Est-ce que quelqu'un sait comment gérer cela?

Répondre

0

Utilisez LogManager.getLogManager().readConfiguration(LogManager.class.getResourceAsStream("/logging.debug.properties"));

(notez la barre oblique supplémentaire).

1

Il se peut que vous ayez plusieurs fichiers logging.properties dans vos fichiers jar, avec des paramètres similaires mais légèrement différents. Lorsque vous les combinez avec un pot, l'ordre change et l'un d'eux est caché. Faites un "jar -tf * .jar | grep logging.properties" et voyez ce que vous voyez.

Si cela ne fonctionne pas, pouvez-vous essayer de désactiver le résultat onejar dans une structure de répertoire, puis de lancer le répertoire sur le chemin de classe à la place du fichier jar? Cela vous permettra de voir si c'est quelque chose à voir avec le pot, et d'inspecter les propriétés de consignation que vous avez dans le fichier .jar, et de voir si elles correspondent à ce que vous attendez.

+0

Bien essayé, mais c'est le seul "logging.properties" que j'ai. – gizmo

+0

OK. Je l'avais eu avant quand un de mes pots de tiers avait un logging.properties en ce que je n'ai pas réalisé. Proposition suivante - ajoutée en tant que modification ... –

Questions connexes