2013-04-02 2 views
1

Qu'est-ce que log4j.category.DataNucleus pour les exceptions? J'ai donc essayé d'utiliser Log4j avec Google App Engine, mais lors des tests, les exceptions ne sont pas récupérées par Lo4j (elles sont détectées par le tableau de bord).Attraper des exceptions avec Log4j

Je veux également que toutes les erreurs soient détectées. J'ai donc ajouté ceci à la classe principale. Est-ce que cela ramassera toutes les erreurs, y compris fatel?

logger.fatal ("App Error"); 

Ok donc j'ai essayé ceci:

} 
    catch(Exception e) { 
      logger.warn("Log4j has caught n exception!", e); 
      e.printStackTrace(); 
     } 

Cependant l'exception montre dans le tableau de bord, mais ce n'est pas log4j qui est le ramasser comme il ne me donne pas « Log4j a pris n exception ! ".

Répondre

0

Qu'est-ce que log4j.category.DataNucleus pour les exceptions?

log4j.logger.DataNucleus 

général

Je n'utilise Eclise ni Log4J (sauf que DataNucleus utilise, bien sûr). J'ai les éléments suivants dans mes fichiers de configuration de journal.

log4j.properties

log4j.appender.A1 = org.apache.log4j.ConsoleAppender 
log4j.appender.A1.layout = org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern = %d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n 

[...] 

# Tighten logging on the DataNucleus categories to WARN. 
# This DataNucleus logging configuration appears redundant; in production, 
# DataNucleus uses Java logging instead. 
log4j.logger.DataNucleus     = WARN, A1 
log4j.logger.DataNucleus.JDO    = WARN, A1 
log4j.logger.DataNucleus.Persistence  = WARN, A1 
log4j.logger.DataNucleus.Query   = WARN, A1 
log4j.logger.DataNucleus.Lifecycle  = WARN, A1 
log4j.logger.DataNucleus.Cache   = WARN, A1 
log4j.logger.DataNucleus.MetaData  = WARN, A1 
log4j.logger.DataNucleus.Management  = WARN, A1 
log4j.logger.DataNucleus.General   = WARN, A1 
log4j.logger.DataNucleus.Connection  = WARN, A1 
log4j.logger.DataNucleus.Transaction  = WARN, A1 
log4j.logger.DataNucleus.Datastore  = WARN, A1 
log4j.logger.DataNucleus.ClassLoading = WARN, A1 
log4j.logger.DataNucleus.Plugin   = WARN, A1 
log4j.logger.DataNucleus.ValueGeneration = WARN, A1 
log4j.logger.DataNucleus.Enhancer  = WARN, A1 
log4j.logger.DataNucleus.SchemaTool  = WARN, A1 

logging.properties

handlers = java.util.logging.ConsoleHandler 
java.util.logging.ConsoleHandler.level = ALL 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 

[...] 

# Set the default logging level for ORM, specifically, to WARNING 
DataNucleus.level     = WARNING 
DataNucleus.JDO.level    = WARNING 
DataNucleus.Persistence.level  = WARNING 
DataNucleus.Query.level   = WARNING 
DataNucleus.Lifecycle.level  = WARNING 
DataNucleus.Cache.level   = WARNING 
DataNucleus.MetaData.level  = WARNING 
DataNucleus.Management.level  = WARNING 
DataNucleus.General.level   = WARNING 
DataNucleus.Connection.level  = WARNING 
DataNucleus.Transaction.level  = WARNING 
DataNucleus.Datastore.level  = WARNING 
DataNucleus.ClassLoading.level = WARNING 
DataNucleus.Plugin.level   = WARNING 
DataNucleus.ValueGeneration.level = WARNING 
DataNucleus.Enhancer.level  = WARNING 
DataNucleus.SchemaTool.level  = WARNING 

logger.fatal ("Erreur App");

Je n'ai jamais codé Log4J. Est-ce que cette commande va non seulement enregistrer une entrée de texte "App Error" au niveau fatal?

Profiter?

+0

Si vous pensez que ma réponse est utile (vous l'avez cochée!) Alors n'hésitez pas à me donner un vote pour son utilité. –