Printemps de Démarrage de la jetée et de tomcat intégré d'accès de configuration de la journalisation
Je config logback.xml
il fonctionne parfaitement
mais logback-access.xml
pas de travail.
dans maven pom.xml
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
</dependency>
dans src/main/resource
logback.xml
logback-access.xml
Est-il possible de config journal d'accès?
J'ai édité la réponse de cette question, comme par cette méta de discussion, et l'a placé dans un nouveau wiki de la communauté réponse, que les réponses appartiennent à des réponses. Si vous souhaitez fournir comme réponse vous-même au lieu de cela, vous pouvez laisser un commentaire dans le wiki de la communauté réponse et je vais le supprimer.
OriginalL'auteur Ego Slayer | 2013-12-13
Vous devez vous connecter pour publier un commentaire.
Vous devez inclure les informations pertinentes en fonction de votre serveur conteneur. E. g. pour Tomcat, ajouter un
LogbackValve
dans unEmbeddedServletContainerCustomizer
bean. LeTomcatEmbeddedServletContainerFactory
a unaddContextValves
méthode à cette fin.C'est juste un indicateur pour activer le journal des accès, n'est-ce pas? L'OP a voulu configurer le format de la sortie du journal.
Oui, mais vous pouvez le configurer dans l'application.yml trop. Ce serveur.tomcat.accesslog.motif: "%h %l %u %t "%r "%s %b %D" fera l'affaire, à moins que quelque chose m'échappe. Vous pouvez également spécifier la rotation de la politique, le nom de & emplacement du fichier de log, etc. ainsi. Désolé dave, je ne veux pas dire que votre approche est erronée juste essayer de comprendre quand utiliser l'une des deux approches.
si cela fonctionne, vous devrez probablement ajouter une autre réponse à l'expliquer
À l'aide de logback donne l'application possibilité d'envoyer connecter à distance des sources de données comme le WAPITI ou TCP serveur de journal. Si vous avez beaucoup de serveurs en ligne, il est difficile de trouver des bugs si les journaux n'existent que dans le répertoire local.
OriginalL'auteur Dave Syer
Pour l'embarqué Embarcadère, vous pouvez également écrire cette partie de votre Ressort de configuration de Démarrage:
Cela fonctionne avec Logback:
RequestLogHandler reqLogs = new RequestLogHandler(); reqLogs.setServer(server); RequestLogImpl rli = new RequestLogImpl(); rli.setResource("/logback-access.xml"); rli.setQuiet(true); reqLogs.setRequestLog(rli); handlers.addHandler(reqLogs); server.setHandler(handlers);
Aussi vous avez besoin d'unlogback-access.xml
fichier de configuration sur le chemin de la classe. Vérifiez la documentation pour que.J'essayais juste que, effectivement, mais ne semble pas fonctionner pour moi, je vais avoir un autre aller mais si vous êtes de confirmer qu'il fonctionne
J'ai mis à jour mon commentaire avec exemple pour Logback.
Allons créer une nouvelle question vraiment pas pourquoi cela ne fonctionne pas. Je peux tester que la ressource est là. N'obtenez pas de journaux d'erreurs, donc difficile de savoir ce qui est en place.
OriginalL'auteur albogdano
Après de nombreuses heures à essayer de trouver une solution à travailler avec SpringBoot 1.4 + Jetée + Logback d'accès, j'ai enfin trouvé une réponse à mes malheurs.
De la jetée de l'interface de l'API a changé en v9.3 et Logback d'accès ne fonctionne plus.
http://shibboleth.1660669.n2.nabble.com/Jetty-9-3-access-logging-recommended-configuration-td7620755.html
Il y a eu une demande d'extraction dans le Logback projet pour qu'il fonctionne à nouveau.
https://github.com/qos-ch/logback/pull/269
Il ya un couple de solutions qui sont mentionnées ci-dessus pull request.
Option 1.
Utilisation de l'org.eclipse.la jetée.serveur.Slf4jRequestLog mise en œuvre de route de la configuration de la journalisation de retour à la classique Logback.
JettyConfiguration @Bean
logback.xml
Cela fonctionne, mais vous perdez tout le journal d'accès des paramètres spécifiques dans la coutume PatternLayout disponible avec Logback d'accès. Vous avez probablement besoin de rouler votre propre modèle de classes.
Pensé que cela pourrait fonctionner, mais il n'a pas (ou je ne l'ai pas fait correctement).
Option 2
Également fait mention dans la demande d'extraction ci-dessus est une solution de la question qui peut être utilisé jusqu'à ce qu'il soit trié.
Créer une classe qui ajoute le manque de l'interface et de l'utiliser à la place de RequestLogImpl.
Nouvelle classe
}
Jetée De Configuration @Bean
J'ai essayé les deux et fini par aller avec l'option 2 pour l'instant que j'ai passé tooooooooo sur ce sujet déjà. Je préfère l'option 1 mais si je peux garder tous mes journalisation config dans le même fichier.
Bonne chance.
Utilisez l'encodeur motif <modèle>%msg</pattern>. Appelez le slf4jRequestLog.setExtended(true) pour obtenir le format étendu. Pas besoin de jouer avec votre propre patron si vous voulez que le format standard.
OriginalL'auteur chrismacp
Cette version de par programme l'ajout d'une valve Tomcat pour logback-accès améliore l'auteur original de la solution un peu.
Grâce à wacai. Voici ma version qui
:
de${logback.access.config.path:}
src/main/resources/logback-access.xml
logback-access.xml
REMARQUE: vous devez logback-accès 1.1.6 pour charger config de ressources - recherche automatiquement les ressources pour
logback-access.xml
.OriginalL'auteur Steve Tarver
Alternative est de s'inscrire Filtre de Servlet et écrire régulièrement les journaux.
Pour éviter le mélange de l'accès des événements avec d'autres événements désactiver
additivity
:LoggingFilter
est régulier Filtre de Servlet, qui peuvent être facilement enregistrés au Printemps de Démarrage de l'app via@ServletComponentScan
sur@Configuration
classe +@WebFilter
surimplements javax.servlet.Filter
ou par l'intermédiaire de haricot config:Je recommande d'utiliser au moins
GenericFilterBean
ou mieuxOncePerRequestFilter
. L'abattage des filtres déjà fourni par Spring Web à l'intérieur deorg.springframework.web.filter
package:AbstractRequestLoggingFilter
CommonsRequestLoggingFilter
ServletContextRequestLoggingFilter
Je définir propre mise en œuvre, basé sur
OncePerRequestFilter
pour remplir Slf4j MDC contexte avec une adresse IP et d'autres informations...OriginalL'auteur gavenkoa
Mise en œuvre de la actuellement accepté de répondre à, cortesy de Ego Slayer, affiché comme le wiki de la communauté:
Que je sois début de http://spring.io/guides/gs/rest-service/
il suffit de créer le fichier ici
src/main/java/hello/MyConfig.java
et ajouter
logback-access
dans mavenpom.xml
OriginalL'auteur