Groovy Script et log4j
Été chercher ici et là à la recherche d'un exemple de travail de log4j l'enregistrement du dossier dans un script Groovy.
Explicite pas la classe (c'est juste un script).
Pas de graal.
Pas de console...de fichier.
Juste un simple script groovy avec log4j.
Log4j est le meilleur pour ce (groovy) ou d'autres journalisation des bibliothèques de mieux?
Peut quelqu'un m'indiquer un exemple ou la démo de comment c'est fait? J'ai réussi à obtenir pour la console, mais pas de fichier.
Serait bien si la configuration log4j était dans une config.groovy fichier en tant que bien, depuis que je suis en utilisant un fichier de configuration pour d'autres choses.
Mise à JOUR
Grâce à neversleepz exemple, j'ai le texte suivant fonctionne parfaitement:
config.groovy fichier:
log4j {
appender.stdout = "org.apache.log4j.ConsoleAppender"
appender."stdout.layout"="org.apache.log4j.PatternLayout"
appender.scrlog = "org.apache.log4j.FileAppender"
appender."scrlog.layout"="org.apache.log4j.PatternLayout"
appender."scrlog.layout.ConversionPattern"="%d %5p %c{1}:%L - %m%n"
appender."scrlog.file"="rootscript.log"
rootLogger = "debug,scrlog,stdout"
}
Et mon script:
import org.apache.log4j.*
import groovy.util.logging.*
def config = new ConfigSlurper().parse(new File('config.groovy').toURL())
PropertyConfigurator.configure(config.toProperties())
Logger log = Logger.getInstance(getClass())
//Need to set log level as described here:
//http://groovy.329449.n5.nabble.com/log4j-annotation-not-working-td4368806.html
log.level = Level.INFO
//this will NOT print/write as the loglevel is info
log.debug 'Executing Script.'
//this will print
log.info 'Simple sample to show log INFO field is injected.'
log.warn 'Simple sample to show log WARN field is injected.'
log.error 'Simple sample to show log ERR field is injected.'
Merci pour cette!
J'ai également configuré pour un RollingFileAppender, et DailyRollingFileAppender je vais mettre ceux qui sont ici:
log4j {
//
appender.stdout = "org.apache.log4j.ConsoleAppender"
appender."stdout.layout"="org.apache.log4j.PatternLayout"
//
appender.scrlog = "org.apache.log4j.DailyRollingFileAppender"
appender."scrlog.DatePattern"="'.'yyyy-MM-dd"
appender."scrlog.Append"="true"
appender."scrlog.File"="rootscript.log"
appender."scrlog.layout"="org.apache.log4j.PatternLayout"
appender."scrlog.layout.ConversionPattern"="%d %5p %c{1}:%L - %m%n"
rootLogger="debug,scrlog,stdout"
}
et
log4j {
//
appender.stdout = "org.apache.log4j.ConsoleAppender"
appender."stdout.layout"="org.apache.log4j.PatternLayout"
//
appender.scrlog = "org.apache.log4j.DailyRollingFileAppender"
appender."scrlog.DatePattern"="'.'yyyy-MM-dd"
appender."scrlog.Append"="true"
appender."scrlog.File"="rootscript.log"
appender."scrlog.layout"="org.apache.log4j.PatternLayout"
appender."scrlog.layout.ConversionPattern"="%d %5p %c{1}:%L - %m%n"
rootLogger="debug,scrlog,stdout"
logger.ProcessLogger="debug,scrlog"
}
OriginalL'auteur Bean | 2013-11-08
Vous devez vous connecter pour publier un commentaire.
Voici un exemple simple utilisant
@Grab
à tirer dans le log4j lib, puis à l'aide de la fonction intégrée de Groovy est@Log4j
annotation de fil dans unlog
variable.Vous pouvez ensuite configurer votre enregistreur dans le script et ajouter un
FileAppender
Exécuter lorsque vous verrez cela dans votre myscript.journal
Malheureusement, le fichier de configuration.groovy de fichiers de l'enregistreur de configuration est spécifiques à Graal. Puisque vous n'êtes pas dans le Graal, le DSL n'est pas là pour interpréter les log4j choses. Cependant, prendre un coup d'oeil à ConfigSlurper en Groovy, qui ressemble, il sera de vous fournir un semblable DSL pour apporter dans votre config.
Merci beaucoup! Si vous avez été la recherche de quelque chose de plus à faire :p , j'aimerais voir un exemple d'utilisation des environnements dans la config...
Mon plaisir. Depuis log4jconfig.groovy est juste groovy code, vous pouvez ajouter si les déclarations de changer la config basée sur un Système différent de la propriété. S'avère que cette question a été posée et déjà répondu here donc voir pour plus.
OriginalL'auteur neversleepz
Une autre façon de le faire serait d'utiliser Groovy de journalisation de l'emballage. Vous pouvez utiliser le même facilement mon importation de l'util de journalisation et de l'aide de l' @Journal de l'annotation comme dans cet exemple
Cependant, depuis l'annotation travaille sur une classe, vous devez créer votre script groovy à l'intérieur d'une classe. Gratuit scripts de formulaire, ne pas obtenir de l'enregistreur de données access de cette façon.
Espère que cette aide.
OriginalL'auteur bythe4mile