J'ai créé un fichier log4j assez standard, je voudrais charger et utiliser les propriétés de celui-ci, en le plaçant dans le fichier jar de l'application. En utilisant les propriétés de java.util, j'ai réussi à le faire fonctionner en mode client-fils, mais à l'aide de typesafe-config, le fichier log4j.properties est complètement ignoré.Lire les propriétés de log4j avec la configuration de typeafe
C'est le log4j.properties
log4j.rootLogger=INFO, RollingAppender
log4j.rootCategory=DEBUG, file
log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=log/rule.log
log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppender.layout.ConversionPattern=[%p] %d %c %M - %m%n
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1} %m%n
Voici comment je récupère les propriétés. Cela devrait aller, puisque les autres propriétés sont récupérées correctement.
val log = LogManager.getRootLogger()
val logCfgProps : Config = ConfigFactory.load("log4j.properties")
val configLogProps = Option(getClass.getClassLoader.getResource("log4j.properties")).fold
{
log.error("log4j.properties file not retrieved. Application is shutting down")
ConfigFactory.load()
}
{ resource => ConfigFactory.load(logCfgProps)}
Et je tente de me connecter avec
log.error("blabla")
Sur la console, je reçois l'enregistrement à droite, mais il n'est pas écrit dans le fichier. J'ai essayé d'ajouter l'option --conf "spark.executor.extraJavaOptions = -Dlog4j.configuration = log4j.properties" myapp.jar a suggéré here mais cela ne fait aucune différence.
EDIT
J'ai ouvert un new question on SO sur la façon d'utiliser le configurateur de la propriété pour le faire fonctionner, je laisse cette ouverture car il était sur l'utilisation ConfigFactory.
Pourriez-vous vérifier le nom du fichier dans le fichier jar? Est-ce 'log4j-executor.properties' ou' log4j.properties'? Je suis confus parce que vous avez utilisé deux noms de fichiers différents dans votre question. – zsxwing