Χρησιμοποιεί το tomcat log4j?
Apache Tomcat 8
Το API καταγραφής Servlets προηγήθηκε της Java.χρησιμοποιώ.καταγραφή API που παρέχεται τώρα από την Java. Ως εκ τούτου, δεν σας προσφέρει πολλές επιλογές. μι.σολ., Δεν μπορείτε να ελέγξετε τα επίπεδα καταγραφής. Μπορεί όμως να σημειωθεί ότι στην εφαρμογή Apache Tomcat οι κλήσεις προς το ServletContext.log (string) ή genericservlet.Log (String) καταγράφονται στο επίπεδο πληροφοριών. Οι κλήσεις προς το ServletContext.Log (String, Throwable) ή Genericservlet.Το αρχείο καταγραφής (String, Throwable) καταγράφεται σε σοβαρό επίπεδο.
Περίληψη:
Σε αυτό το άρθρο, θα εξηγήσω τη σημασία της χρήσης του Apache Tomcat 9 με το Log4J2 για σκοπούς καταγραφής. Θα παράσχω επίσης έναν οδηγό βήμα προς βήμα σχετικά με τον τρόπο διαμόρφωσης του Apache Tomcat με το Log4J2 και θα συζητήσω τις βέλτιστες πρακτικές για τη σύνδεση σε περιβάλλοντα παραγωγής.
Βασικά σημεία:
- Το Apache Tomcat 9 και το Log4J2 προσφέρουν ένα ευρύ φάσμα επιλογών καταγραφής και προστασίας
- Το Log4J2 παρέχει απλοποιημένη διαμόρφωση κυλίνδρου αρχείων και καταγραφής αρχείων
- Για να διαμορφώσετε το log4j2 με το Apache Tomcat, προσθέστε τις απαραίτητες βιβλιοθήκες στο Classpath και αφαιρέστε την προεπιλεγμένη καταγραφή.αρχείο ιδιοτήτων
- Ξεκινώντας από το Tomcat 8.5.4, οι βιβλιοθήκες Juli-Adapter δεν χρειάζονται πλέον, καθώς το log4j2 μπορεί να συνδεθεί απευθείας σε Java.χρησιμοποιώ.ξύλευση
- Για περιβάλλοντα παραγωγής, συνιστάται να προσαρμόσετε τη διαμόρφωση log4j2 για να αποφευχθεί η αναπαραγωγή αρχείων καταγραφής, να ενεργοποιήσετε την περιστροφή του αρχείου καταγραφής και να καταργήσετε τους αχρησιμοποίητους προστασίες
- Επιπλέον, η συμμετοχή σε διαφορετικούς καταγραφείς σε έναν προστασία μπορεί να βοηθήσει στον εντοπισμό προβλημάτων ανάπτυξης στις εφαρμογές
- Για να αναγκάσετε εφαρμογές χρησιμοποιώντας σύστημα.έξω και σύστημα.ERR για καταγραφή, προσθέστε το χαρακτηριστικό SwallowOutput στο πλαίσιο.αρχείο xml
- Οι εφαρμογές που χρησιμοποιούν το πλαίσιο JUL μπορούν να ρυθμιστούν ώστε να χρησιμοποιούν log4j2 τροποποιώντας τη μεταβλητή περιβάλλοντος logging_manager
- Όταν χρησιμοποιείτε το Spring Boot με log4j2, εξαιρέστε την εξάρτηση από την εκκίνηση της άνοιξης-εκκίνησης και προσθέστε την Spring-Boot-Starter-Log4J2
- Προσαρμόστε τα επίπεδα καταγραφής για συγκεκριμένα πακέτα και απενεργοποιήστε το banner της άνοιξης ανάλογα με τις ανάγκες
Ερωτήσεις:
- Γιατί πρέπει να εξετάσω το Apache Tomcat 9 με log4j2 για καταγραφή?
Το Log4J2 προσφέρει ένα ευρύ φάσμα επιλογών καταγραφής και προστασίας, καθιστώντας το ένα ισχυρό εργαλείο για τη διαχείριση αρχείων καταγραφής στο Tomcat. - Πώς μπορώ να διαμορφώσω το log4j2 με το apache tomcat?
Για να διαμορφώσετε το log4j2 με το Apache Tomcat, πρέπει να προσθέσετε τις απαραίτητες βιβλιοθήκες στο Classpath και να αφαιρέσετε την προεπιλεγμένη καταγραφή.αρχείο ιδιοτήτων. - Γιατί οι βιβλιοθήκες προσαρμογέα Juli-Adapter δεν χρειάζονται πλέον στο Tomcat 8.5.4 και άνω?
Το log4j2 μπορεί να συνδεθεί απευθείας σε Java.χρησιμοποιώ.καταγραφή, εξάλειψη της ανάγκης για βιβλιοθήκες προσαρμογέα juli. - Ποιες είναι οι συνιστώμενες διαμορφώσεις καταγραφής για περιβάλλοντα παραγωγής?
Σε περιβάλλοντα παραγωγής, συνιστάται η προσαρμογή της διαμόρφωσης log4j2 για να αποφευχθεί η αναπαραγωγή αρχείων καταγραφής, η ενεργοποίηση της περιστροφής καταγραφής και η κατάργηση αχρησιμοποίητων προστασιών. - Πώς μπορώ να αναγκάσω τις εφαρμογές χρησιμοποιώντας σύστημα.έξω και σύστημα.ERR για καταγραφή?
Προσθέτοντας το χαρακτηριστικό SwallowOutput στο πλαίσιο.Αρχείο XML, Εφαρμογές που χρησιμοποιούν το σύστημα.έξω και σύστημα.Το ERR μπορεί να αναγκαστεί να καταγραφεί. - Μπορούν οι εφαρμογές χρησιμοποιώντας το πλαίσιο JUL να ρυθμιστούν ώστε να χρησιμοποιούν log4j2?
Ναι, τροποποιώντας τη μεταβλητή περιβάλλοντος logging_manager, οι εφαρμογές που χρησιμοποιούν το πλαίσιο JUL μπορούν να διαμορφωθούν ώστε να χρησιμοποιούν log4j2. - Τι πρέπει να κάνω για να χρησιμοποιήσω το log4j2 με την άνοιξη?
Για να χρησιμοποιήσετε το log4j2 με την άνοιξη, εξαιρέστε την εξάρτηση από την άνοιξη-εκκίνηση-εκκίνηση και προσθέστε το Spring-Boot-Starter-Log4J2. - Πώς μπορώ να προσαρμόσω τα επίπεδα καταγραφής για συγκεκριμένα πακέτα στο Spring Boot?
Τα επίπεδα καταγραφής για συγκεκριμένα πακέτα μπορούν να προσαρμοστούν με την τροποποίηση των ιδιοτήτων διαμόρφωσης καταγραφής στο αρχείο διαμόρφωσης της εφαρμογής. - Είναι δυνατόν να απενεργοποιήσετε το banner της άνοιξης στην άνοιξη?
Ναι, το Banner Spring μπορεί να απενεργοποιηθεί ρυθμίζοντας το ελατήριο.κύριος.Ιδιότητα Banner-Mode To Off στο αρχείο διαμόρφωσης της εφαρμογής. - Γιατί πρέπει να χρησιμοποιήσω log4j2 αντί για την προεπιλεγμένη εφαρμογή καταγραφής στο Tomcat?
Το Log4J2 προσφέρει ένα ευρύτερο φάσμα επιλογών καταγραφής και προστασίας, καθιστώντας το πιο ευέλικτο και ισχυρό σε σύγκριση με την προεπιλεγμένη υλοποίηση καταγραφής στο Tomcat.
Λεπτομερείς απαντήσεις:
- Γιατί πρέπει να εξετάσω το Apache Tomcat 9 με log4j2 για καταγραφή?
Το Apache Tomcat 9 με το Log4J2 παρέχει ένα πιο προηγμένο και ευέλικτο σύστημα καταγραφής σε σύγκριση με την προεπιλεγμένη υλοποίηση καταγραφής. Το Log4J2 προσφέρει ένα ευρύ φάσμα προστασιών και επιλογές καταγραφής, επιτρέποντάς σας να προσαρμόσετε και να διαχειριστείτε αποτελεσματικά τα αρχεία καταγραφής σας. Η απλότητα της διαμόρφωσης του log4j2 και της ικανότητάς του να κυλούν αρχεία καταγραφής με το αρχικό όνομα καθιστά μια ελκυστική επιλογή για διαμορφώσεις κατάποσης καταγραφής. Επιπλέον, η χρήση Log4J2 εξαλείφει τους περιορισμούς του API καταγραφής Servlets, όπως η αδυναμία ελέγχου των επιπέδων καταγραφής. - Πώς μπορώ να διαμορφώσω το log4j2 με το apache tomcat?
Η διαμόρφωση του log4j2 με το apache tomcat είναι απλή. Πρώτον, πρέπει να προσθέσετε τις βιβλιοθήκες Log4J2-Api, Log4J2-Core και Log4J2-Appserver στο Tomcat Classpath. Στη συνέχεια, δώστε το αρχείο διαμόρφωσης log4j2 στο έργο σας. Τέλος, αφαιρέστε την προεπιλεγμένη καταγραφή.Αρχείο ιδιοτήτων από την εγκατάσταση Tomcat. Ακολουθώντας αυτά τα βήματα θα επιτρέψουν στο Log4J2 ως πλαίσιο καταγραφής για το Tomcat. - Γιατί οι βιβλιοθήκες προσαρμογέα Juli-Adapter δεν χρειάζονται πλέον στο Tomcat 8.5.4 και άνω?
Εκδόσεις Tomcat 8.5.4 και παραπάνω εισήγαγε άμεση ενσωμάτωση με το log4j2, εξαλείφοντας την ανάγκη για βιβλιοθήκες juli-προσαρμογέα. Το log4j2 μπορεί τώρα να συνδεθεί απευθείας στο Java.χρησιμοποιώ.καταγραφή, καθιστώντας το απρόσκοπτο αντικατάσταση για το API καταγραφής Servlets. Αυτή η ενσωμάτωση απλοποιεί τη διαδικασία διαμόρφωσης καταγραφής και παρέχει μεγαλύτερο έλεγχο σε επίπεδα καταγραφής και προστασίες. - Ποιες είναι οι συνιστώμενες διαμορφώσεις καταγραφής για περιβάλλοντα παραγωγής?
Κατά τη διαμόρφωση του log4j2 για περιβάλλοντα παραγωγής, πρέπει να ληφθούν υπόψη διάφορες εκτιμήσεις. Πρώτον, είναι σημαντικό να αποφευχθεί η αντιγραφή των εξόδων καταγραφής στη Catalina.out αρχείο και Catalina.αρχείο καταγραφής. Αυτό μπορεί να επιτευχθεί με την αφαίρεση του κονσολέδρου. Δεύτερον, συνιστάται η ενεργοποίηση της περιστροφής καταγραφής για την Catalina.αρχείο καταγραφής για να αποφευχθεί η ανάπτυξη πολύ μεγάλου. Τέλος, η κατάργηση μη χρησιμοποιούμενοι προστασίες όπως ο διαχειριστής.Log και Host_Manager.Το αρχείο καταγραφής μπορεί να βοηθήσει να declutter η έξοδος καταγραφής. Επιπλέον, η συμμετοχή σε διαφορετικούς καταγραφείς σε έναν προστασία, όπως οι καταγραφείς Catalina και LocalHost, μπορεί να απλοποιήσει την αντιμετώπιση προβλημάτων και να εντοπίσει θέματα ανάπτυξης. - Πώς μπορώ να αναγκάσω τις εφαρμογές χρησιμοποιώντας σύστημα.έξω και σύστημα.ERR για καταγραφή?
Για να αναγκάσετε εφαρμογές που χρησιμοποιούν το σύστημα.έξω και σύστημα.ERR στο Log, μπορείτε να προσθέσετε το χαρακτηριστικό SwallowOutput στο προεπιλεγμένο πλαίσιο.Αρχείο XML που βρίσκεται στο $ catalina_base/conf/context.XML. Αυτό το χαρακτηριστικό διδάσκει το Tomcat στο σύστημα ανακατεύθυνσης.έξω και σύστημα.ERR στο σύστημα καταγραφής, εξασφαλίζοντας ότι όλα τα έξοδα καταγράφονται στα αρχεία καταγραφής. - Μπορούν οι εφαρμογές χρησιμοποιώντας το πλαίσιο JUL να ρυθμιστούν ώστε να χρησιμοποιούν log4j2?
Ναι, οι εφαρμογές που χρησιμοποιούν το πλαίσιο JUL (Java Util Logging) μπορούν να ρυθμιστούν για να χρησιμοποιήσουν το Log4J2. Με την τροποποίηση της μεταβλητής περιβάλλοντος logging_manager στο setenv.Αρχείο SH, μπορείτε να ορίσετε την τιμή σε “-djava.χρησιμοποιώ.ξύλευση.διαχειριστή = org.απάχης.ξύλευση.log4j.ζούλας.LogManager “. Αυτή η διαμόρφωση διασφαλίζει ότι οι εφαρμογές που χρησιμοποιούν το Jul θα χρησιμοποιήσουν τη μορφή log4j2 για τα αρχεία καταγραφής τους αντί για την προεπιλεγμένη μορφή. - Τι πρέπει να κάνω για να χρησιμοποιήσω το log4j2 με την άνοιξη?
Για να χρησιμοποιήσετε το log4j2 με την άνοιξη, θα πρέπει να αποκλείσετε την προεπιλεγμένη εξάρτηση από το Spring-Boot-Starter από τα διαφορετικά αντικείμενα εκκίνησης. Αυτό μπορεί να γίνει με τον καθορισμό <αποκλείω>εκκίνηση της άνοιξης-εκκίνησης</αποκλείω> Στην ενότητα Εξαρτήματα του POM του έργου σας.αρχείο xml. Αφού εξαιρέσετε την προεπιλεγμένη εξάρτηση καταγραφής, μπορείτε να προσθέσετε την εξάρτηση από την άνοιξη-εκκίνηση-Log4J2, η οποία περιλαμβάνει όλες τις απαραίτητες εξαρτήσεις log4j2 και τις SLF4J. Εάν δεν χρησιμοποιείτε καμία από τις λειτουργίες SLF4J, μπορείτε να χρησιμοποιήσετε την εξάρτηση log4j-web αντ ‘αυτού. - Πώς μπορώ να προσαρμόσω τα επίπεδα καταγραφής για συγκεκριμένα πακέτα στο Spring Boot?
Στο Spring Boot, μπορείτε να προσαρμόσετε τα επίπεδα καταγραφής για συγκεκριμένα πακέτα τροποποιώντας τη διαμόρφωση καταγραφής στις ιδιότητες της εφαρμογής ή στο αρχείο YAML. Η σύνταξη για την προσαρμογή των επιπέδων καταγραφής είναι ξύλευση.επίπεδο.package_name = επίπεδο. Για παράδειγμα, εάν θέλετε να ορίσετε το επίπεδο εντοπισμού σφαλμάτων για το “org.Το πακέτο SpringFramework “και το πακέτο” Hello “, μπορείτε να προσθέσετε την ακόλουθη διαμόρφωση: ξύλευση.επίπεδο.org.SpringFramework = Debug και ξύλευση.επίπεδο.Γεια σας = Debug. - Είναι δυνατόν να απενεργοποιήσετε το banner της άνοιξης στην άνοιξη?
Ναι, είναι δυνατόν να απενεργοποιήσετε το Banner Spring στο Spring Boot. Ρυθμίζοντας το άνοιξη.κύριος.προβάδισμα Ιδιότητα στο “Off” στις ιδιότητες της εφαρμογής ή στο αρχείο YAML, μπορείτε να εμποδίσετε το banner να εμφανιστεί στην έξοδο της κονσόλας ή τα αρχεία καταγραφής. - Γιατί πρέπει να χρησιμοποιήσω log4j2 αντί για την προεπιλεγμένη εφαρμογή καταγραφής στο Tomcat?
Το Log4J2 προσφέρει πολλά πλεονεκτήματα έναντι της προεπιλεγμένης εφαρμογής καταγραφής στο Tomcat. Παρέχει ένα ευρύτερο φάσμα προστασιών και επιλογές καταγραφής, επιτρέποντάς σας να προσαρμόσετε τα αρχεία καταγραφής σύμφωνα με τις ανάγκες σας. Το Log4J2 προσφέρει επίσης μεγαλύτερη ευελιξία στο Rolling αρχείου καταγραφής, απλοποιώντας τις διαμορφώσεις κατάποσης καταγραφής. Επιπλέον, το Log4J2 εξαλείφει τους περιορισμούς του API καταγραφής Servlets, όπως η αδυναμία ελέγχου των επιπέδων καταγραφής. Συνολικά, η χρήση του log4j2 μπορεί να βελτιώσει την εμπειρία καταγραφής σας στο Tomcat.
Apache Tomcat 8
Το API καταγραφής Servlets προηγήθηκε της Java.χρησιμοποιώ.καταγραφή API που παρέχεται τώρα από την Java. Ως εκ τούτου, δεν σας προσφέρει πολλές επιλογές. μι.σολ., Δεν μπορείτε να ελέγξετε τα επίπεδα καταγραφής. Μπορεί όμως να σημειωθεί ότι στην εφαρμογή Apache Tomcat οι κλήσεις προς το ServletContext.log (string) ή genericservlet.Log (String) καταγράφονται στο επίπεδο πληροφοριών. Οι κλήσεις προς το ServletContext.Log (String, Throwable) ή Genericservlet.Το αρχείο καταγραφής (String, Throwable) καταγράφεται σε σοβαρό επίπεδο.
Κρατώντας τα αρχεία καταγραφής σας καθαρά με Apache Tomcat 9, Log4J2 και Spring-Boot
Αυτές οι τελευταίες μέρες παίζω με το Apache Tomcat 9 και Log4J2. Μπορεί να αναρωτηθείτε γιατί θέλω να αλλάξω το καλό ένα παλιό Tomcat Juli. Λοιπόν, αν και μου αρέσει η απλότητα της διαμόρφωσης και το γεγονός ότι η Juli Works, το Log4J2 προσφέρει μια μεγάλη ποικιλία από προστασίες που το κάνουν πολύ ενδιαφέρον. Επίσης προτιμώ τον τρόπο του τρόπου με τον οποίο το log4j2 κυλά τα αρχεία, διατηρώντας το αρχικό όνομα un-touched (e.σολ. Καταλίνα.log), αυτό κάνει τη διαμόρφωση της κατάποσης (logstash) λίγο πιο απλό.
Apache Tomcat με διαμόρφωση Log4J2
Η διαμόρφωση Apache-Tomcat είναι πολύ απλή. Απλά πρέπει να προσθέσετε τις βιβλιοθήκες log4j2-api, log4j2-core και log4j2-appserver στο tomcat classpath, παρέχετε το αρχείο διαμόρφωσης log4j2 και αφαιρώ ο $ Catalina_base/conf/καταγραφή.ιδιότητες από την εγκατάστασή σας. Αυτά τα βήματα περιγράφονται εδώ.
Εάν χρησιμοποιείτε εκδόσεις Tomcat πριν από 8.5.4 Μπορεί να αναρωτιέστε τι συνέβη με τις βιβλιοθήκες προσαρμογέα juli από τα διάσημα tomcat extras? Δεν χρειάζονται πια, επειδή το log4j2 μπορεί να συνδεθεί στο Java.χρησιμοποιώ.καταγραφή, hooray! Δείτε περισσότερα στο ASF Bugzilla – Bug 58588
Διαμόρφωση καταγραφής για περιβάλλοντα παραγωγής
Εάν εκτελείτε μια πρόσφατη έκδοση Tomcat, μπορείτε να δείτε ότι το κεφάλαιο “Χρήση log4j” των προηγούμενων εκδόσεων δεν είναι ακόμα εκεί. Μπορεί να έχετε τον πειρασμό να ξαναχρησιμοποιήσετε το παλιό log4j.ιδιότητες που αντικατοπτρίζουν την προεπιλεγμένη Java.χρησιμοποιώ.ξύλευση. Να είστε προσεκτικοί, να αλλάξετε τη σύνταξη ιδιοτήτων log4j2. Με αυτό (btw, ευχαριστώ τον Bryan Maupin. ) Θα λάβετε την προεπιλεγμένη διαμόρφωση με τους τρεις προεπιλεγμένους καταγραφείς και τους προσαρτητές Tomcat. Για μια χρήση παραγωγής μπορείτε να λάβετε υπόψη τις εκτιμήσεις των Docs Tomcat και τις συστάσεις σχετικά με την καταγραφή από Mark Thomas, Μέλος της επιτροπής διαχείρισης έργων Apache Tomcat:
- Κάνω όχιΤ αντίγραφο Το Tomcat παραγωγή στην Καταλίνα.έξω (κονσόλα) και στην Catalina.αρχείο καταγραφής, απαλλαγμένος από το κονσολέδρες
- Προσθήκη περιστροφή στην Καταλίνα σας.κούτσουρο
- Αφαίρεση των μη χρησιμοποιημένων προστασιών διευθυντής.Log και Host_Manager.κούτσουρο
- Συμμετοχή διαφορετικός καταγραφές (Catalina & Localhost) στο ένας προστασία (Catalina.κούτσουρο). Αυτό είναι χρήσιμο για την τοποθέτηση προβλημάτων ανάπτυξης στις εφαρμογές όπως τα λανθασμένα καθορισμένα φίλτρα.
Η διαμόρφωση log4j2 που παρέχεται στο παράδειγμα προσπαθεί να ακολουθήσει αυτές τις σκέψεις. Εάν ξεκινήσετε τον διακομιστή Tomcat με αυτό και το Tomcat σας τρέχει “υγιές”, δεν πρέπει να δείτε σχεδόν τίποτα στην κονσόλα. Με αυτή τη διαμόρφωση, στην κονσόλα θα δείτε μόνο πολύ καταστροφικά πράγματα όπως outofmemoryerrors ή νήματα νήματος.
Σύστημα εξαναγκασμού.έξω και σύστημα.ERR για καταγραφή
Εάν αναπτύξουμε εφαρμογές στο διακομιστή μας που εξακολουθεί να χρησιμοποιεί Σύστημα.έξω και/ή Σύστημα.πλανώμαι, Μπορούμε να τους αναγκάσουμε να χρησιμοποιήσουν τον καταγραφέα μας προσθέτοντας SwallowOutput = “True” στην προεπιλογή $ Catalina_base/conf/περιβάλλον.XML του διακομιστή. Μπορούμε να το κάνουμε αυτό επίσης ανά εφαρμογή, τροποποιώντας το καθένα από το meta-inf/περιβάλλον τους.XML.
Java Util Logging και Log4J2
Επίσης, μπορούμε να έχουμε εφαρμογές που χρησιμοποιούν το καλό και το παλιό πλαίσιο JUL:
01 Απριλίου 2019 9:22:05 π.μ. Γεια σας.HelloworldController Sayhello Info: Γεια σας, Ιουλίου.
Αυτές οι εφαρμογές θα χρησιμοποιήσουν την προεπιλογή ξύλευση.ιδιότητες του JDK, ποιο προεπιλεγμένο επίπεδο είναι Πληροφορίες και μορφοποιήστε το SimpleFormatter. Μπορούμε να τους αναγκάσουμε να χρησιμοποιήσουν τη μορφή Log4J2 που αλλάζουν τη μεταβλητή περιβάλλοντος Καταγραφής_Manager. Μπορείτε να το κάνετε αυτό προσθέτοντας στο setenv.SH Αρχείο: logging_manager = “-djava.χρησιμοποιώ.ξύλευση.διαχειριστή = org.απάχης.ξύλευση.log4j.ζούλας.LogManager “ Τώρα τα αρχεία καταγραφής σας θα μοιάζουν με κάτι τέτοιο:
Tomcat 2019-04-01 09: 13: 53,524 [Catalina-utility-1] Πληροφορίες Γεια σας.HelloworldApplication- Γεια σας, Ιουλίου.
Να θυμάστε ότι org.απάχης.ξύλευση.log4j.ζούλας.Λογοτέργος περιλαμβάνεται στο log4j-jul-2.11.2.Jar Bridge που πρέπει να προστεθεί στο δικό σας διαδρομή κατηγορίας.
Spring Boot και Log4J2
Θέλουμε να αναπτύξουμε μια αιχμηρή εκκίνηση Hello, REST Application που χρησιμοποιεί τη διαμόρφωση Log4J2 (προστασία και μορφή) και ταυτόχρονα θέλουμε να διατηρήσουμε τη δυνατότητα να καθορίσουμε διαφορετικούς καταγραφείς. Για παράδειγμα, ας φανταστούμε ότι θέλουμε να ορίσουμε το επίπεδο εντοπισμού σφαλμάτων στις επιχειρηματικές μας τάξεις, στο πακέτο Hello και στα Springframework. Και επίσης αφήνει σιωπηλή το κλασικό banner της άνοιξης:
ξύλευση.επίπεδο.org.SpringFramework = Καταγραφή εντοπισμού σφαλμάτων.επίπεδο.Γεια σας = Debug Spring.κύριος.banner-mode = off
Από προεπιλογή, οι εκκινητές της άνοιξης-εκκίνησης χρησιμοποιούν το logback, οπότε για τη χρήση log4j2 πρέπει αποκλείω εκκίνηση της άνοιξης-εκκίνησης από τα διαφορετικά αντικείμενα εκκίνησης και προσθέστε το Άνοιξη-εκκίνηση-Log4J2 εξάρτηση. Αυτό το τελευταίο θα περιλαμβάνει όλες τις εξαρτήσεις log4j2 συν τις SLF4J. Μπορεί να συμβεί ότι δεν χρησιμοποιούμε κανένα από τα χαρακτηριστικά SL4J, όπως τα παραμετροποιημένα μηνύματα ή όπως στην περίπτωσή μας θέλουμε να χρησιμοποιήσουμε απευθείας log4j2. Εάν αυτή είναι η περίπτωσή σας, μπορείτε απλά να προσθέσετε το log4j-web εξάρτηση. Παρεμπιπτόντως, αυτό είναι αυτό που πρέπει να προσθέσετε για εφαρμογές μη Spring Web, δείτε περισσότερα στο “Χρήση log4j σε εφαρμογές ιστού”.
συμπέρασμα
Σε αυτήν την καταχώρηση μάθαμε πώς να διαμορφώσουμε το Apache Tomcat για να συνεργαστεί με το Log4J2, πώς να καταστήσουμε αυτή τη ρύθμιση έτοιμη για παραγωγή και πώς να αναπτύξουμε μια εφαρμογή Spring-Boot στον διακομιστή Tomcat που χρησιμοποιεί τη διαμόρφωσή μας. Μπορείτε να βρείτε όλα αυτά σε αυτό το αποθετήριο Github.
Καλή ημέρα κωδικοποίησης!
Apache Tomcat 8
Η εσωτερική καταγραφή για το Apache Tomcat χρησιμοποιεί το Juli, ένα συσκευασμένο μετονομασμένο πιρούνι του Apache Commons που καταγράφει ότι, από προεπιλογή, είναι σκληρά κωδικοποιημένη για να χρησιμοποιήσει το Java.χρησιμοποιώ.πλαίσιο καταγραφής. Αυτό εξασφαλίζει ότι η εσωτερική καταγραφή του Tomcat και οποιαδήποτε καταγραφή εφαρμογών ιστού θα παραμείνει ανεξάρτητη, ακόμη και αν μια εφαρμογή ιστού χρησιμοποιεί την καταγραφή του Apache Commons.
Για να διαμορφώσετε το Tomcat για να χρησιμοποιήσετε ένα εναλλακτικό πλαίσιο καταγραφής για την εσωτερική καταγραφή του, πρέπει να αντικαταστήσετε την εφαρμογή Juli που είναι σκληρά κωδικοποιημένη για να χρησιμοποιήσετε Java.χρησιμοποιώ.Η καταγραφή με μια εφαρμογή Juli που διατηρεί τον μηχανισμό ανακάλυψης πλήρους καταγραφής Commons. Μια τέτοια εφαρμογή παρέχεται ως συνιστώσα extras. Οδηγίες σχετικά με τον τρόπο διαμόρφωσης του Tomcat για να χρησιμοποιήσετε το Log4J Framework για την εσωτερική του καταγραφή μπορούν να βρεθούν παρακάτω.
Μια εφαρμογή ιστού που εκτελείται στο Apache Tomcat μπορεί:
- Χρησιμοποιήστε οποιοδήποτε πλαίσιο καταγραφής της επιλογής του.
- Χρησιμοποιήστε το API καταγραφής συστήματος, Java.χρησιμοποιώ.ξύλευση .
- Χρησιμοποιήστε το API καταγραφής που παρέχεται από την προδιαγραφή Java Servlets, Javax.σέρβις.ServletContext.κούτσουρο(. ·
Τα πλαίσια καταγραφής που χρησιμοποιούνται από διαφορετικές εφαρμογές ιστού είναι ανεξάρτητα. Δείτε τη φόρτωση κλάσης για περισσότερες λεπτομέρειες. Η εξαίρεση σε αυτόν τον κανόνα είναι η Java.χρησιμοποιώ.ξύλευση . Εάν χρησιμοποιείται άμεσα ή έμμεσα από τη βιβλιοθήκη καταγραφής, τότε τα στοιχεία του θα μοιραστούν σε όλες τις εφαρμογές ιστού επειδή φορτώνεται από τον φορτωτή κλάσης συστήματος.
Java Logging API – Java.χρησιμοποιώ.ξύλευση
Το Apache Tomcat έχει τη δική του εφαρμογή πολλών βασικών στοιχείων της Java.χρησιμοποιώ.καταγραφή API. Αυτή η εφαρμογή ονομάζεται Juli. Το βασικό στοιχείο υπάρχει μια προσαρμοσμένη εφαρμογή LogManager, που γνωρίζει διαφορετικές εφαρμογές ιστού που εκτελούνται στο Tomcat (και οι διαφορετικοί φορτωτές τάξης). Υποστηρίζει ιδιωτικές διαμορφώσεις καταγραφής ανά εφαρμογή. Ειδοποιείται επίσης από την Tomcat όταν μια εφαρμογή ιστού εκφορτώνεται από τη μνήμη, έτσι ώστε οι αναφορές στις τάξεις της να μπορούν να εκκαθαριστούν, αποτρέποντας τις διαρροές μνήμης.
Αυτό το java.χρησιμοποιώ.Η υλοποίηση καταγραφής ενεργοποιείται παρέχοντας ορισμένες ιδιότητες του συστήματος κατά την εκκίνηση της Java. Τα σενάρια εκκίνησης Apache Tomcat το κάνουν αυτό για εσάς, αλλά αν χρησιμοποιείτε διαφορετικά εργαλεία για να τρέξετε το Tomcat (όπως το JSVC ή το τρέξιμο Tomcat από μέσα σε ένα IDE), θα πρέπει να τα φροντίζετε μόνοι σας από μόνοι σας.
Περισσότερες λεπτομέρειες για τη Java.χρησιμοποιώ.Η καταγραφή μπορεί να βρεθεί στην τεκμηρίωση για το JDK σας και στις σελίδες Javadoc για το Java.χρησιμοποιώ.πακέτο καταγραφής.
Περισσότερες λεπτομέρειες σχετικά με το Tomcat Juli μπορούν να βρεθούν παρακάτω.
API καταγραφής Servlets
Οι κλήσεις προς το javax.σέρβις.ServletContext.κούτσουρο(. ) Για να γράψετε μηνύματα καταγραφής αντιμετωπίζονται με εσωτερική καταγραφή του Tomcat. Τέτοια μηνύματα καταγράφονται στην κατηγορία που ονομάζεται
org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[$].[$].[$]
Αυτή η καταγραφή πραγματοποιείται σύμφωνα με τη διαμόρφωση καταγραφής Tomcat. Δεν μπορείτε να το αντικαταστήσετε σε μια εφαρμογή ιστού.
Το API καταγραφής Servlets προηγήθηκε της Java.χρησιμοποιώ.καταγραφή API που παρέχεται τώρα από την Java. Ως εκ τούτου, δεν σας προσφέρει πολλές επιλογές. μι.σολ., Δεν μπορείτε να ελέγξετε τα επίπεδα καταγραφής. Μπορεί όμως να σημειωθεί ότι στην εφαρμογή Apache Tomcat οι κλήσεις προς το ServletContext.log (string) ή genericservlet.Log (String) καταγράφονται στο επίπεδο πληροφοριών. Οι κλήσεις προς το ServletContext.Log (String, Throwable) ή Genericservlet.Το αρχείο καταγραφής (String, Throwable) καταγράφεται σε σοβαρό επίπεδο.
Κονσόλα
Κατά την εκτέλεση του Tomcat σε Unixes, η έξοδος της κονσόλας συνήθως ανακατευθύνεται στο αρχείο που ονομάζεται Catalina.έξω . Το όνομα είναι διαμορφωμένο χρησιμοποιώντας μια μεταβλητή περιβάλλοντος. (Δείτε τα σενάρια εκκίνησης). Ό, τι είναι γραμμένο στο σύστημα.Το ERR/OUT θα πιαστεί σε αυτό το αρχείο. Που μπορεί να περιλαμβάνει:
- Οι εξαιρέσεις που έχουν εκτυπωθεί από την Java.λασπώνω.Ομάδα νημάτων.αδιαχείριστη εξαίρεση(..·
- Νήματα, αν τα ζητήσατε μέσω σήματος συστήματος
Όταν εκτελείται ως υπηρεσία στα Windows, η έξοδος της κονσόλας έχει επίσης συλληφθεί και ανακατευθύνεται, αλλά τα ονόματα αρχείων είναι διαφορετικά.
Η προεπιλεγμένη διαμόρφωση καταγραφής στο Apache Tomcat γράφει τα ίδια μηνύματα στην κονσόλα και σε ένα αρχείο καταγραφής. Αυτό είναι υπέροχο όταν χρησιμοποιείτε το Tomcat για ανάπτυξη, αλλά συνήθως δεν απαιτείται στην παραγωγή.
Παλιές εφαρμογές που εξακολουθούν να χρησιμοποιούν σύστημα.έξω ή σύστημα.Το ERR μπορεί να εξαπατηθεί με τη ρύθμιση του χαρακτηριστικού SwallowOutput σε ένα πλαίσιο. Εάν το χαρακτηριστικό έχει οριστεί σε True, οι κλήσεις προς το σύστημα.Το Out/Err κατά τη διάρκεια της επεξεργασίας αίτησης θα παρεμποδιστεί και η παραγωγή τους θα τροφοδοτηθεί στο υποσύστημα καταγραφής χρησιμοποιώντας το Javax.σέρβις.ServletContext.κούτσουρο(. ) κλήσεις.
Σημείωση, ότι η λειτουργία SwallowOutput είναι στην πραγματικότητα ένα τέχνασμα και έχει τους περιορισμούς της. Λειτουργεί μόνο με άμεσες κλήσεις στο σύστημα.out/err, και μόνο κατά τη διάρκεια του κύκλου επεξεργασίας αίτησης. Μπορεί να μην λειτουργεί σε άλλα θέματα που μπορεί να δημιουργηθούν από την εφαρμογή. Δεν μπορεί να χρησιμοποιηθεί για την παρακολούθηση των πλαισίων καταγραφής που γράφουν οι ίδιοι στις ροές του συστήματος, καθώς αυτά ξεκινούν νωρίς και μπορούν να λάβουν άμεση αναφορά στα ρεύματα πριν από τη λήψη της ανακατεύθυνσης.
Καταγραφή πρόσβασης
Η καταγραφή πρόσβασης είναι ένα σχετικό αλλά διαφορετικό χαρακτηριστικό, το οποίο εφαρμόζεται ως βαλβίδα . Χρησιμοποιεί αυτόνομη λογική για να γράψει τα αρχεία καταγραφής της. Η βασική απαίτηση για καταγραφή πρόσβασης είναι να χειριστεί μια μεγάλη συνεχή ροή δεδομένων με χαμηλά γενικά έξοδα, οπότε χρησιμοποιεί μόνο την καταγραφή του Apache Commons για τα δικά της μηνύματα εντοπισμού σφαλμάτων. Αυτή η προσέγγιση εφαρμογής αποφεύγει πρόσθετα γενικά έξοδα και δυνητικά πολύπλοκη διαμόρφωση. Ανατρέξτε στην τεκμηρίωση των βαλβίδων για περισσότερες λεπτομέρειες σχετικά με τη διαμόρφωσή της, συμπεριλαμβανομένων των διαφόρων μορφών αναφοράς.
Χρησιμοποιώντας java.χρησιμοποιώ.καταγραφή (προεπιλογή)
Η προεπιλεγμένη εφαρμογή της Java.χρησιμοποιώ.Η καταγραφή που παρέχεται στο JDK είναι πολύ περιορισμένη για να είναι χρήσιμη. Ο βασικός περιορισμός είναι η αδυναμία καταγραφής εφαρμογών PERB, καθώς η διαμόρφωση είναι ανά VM. Ως αποτέλεσμα, η Tomcat, στην προεπιλεγμένη διαμόρφωση, να αντικαταστήσει την προεπιλεγμένη εφαρμογή LogManager με μια φιλική προς το δοχείο υλοποίηση που ονομάζεται Juli, η οποία απευθύνεται σε αυτές τις ελλείψεις.
Ο Juli υποστηρίζει τους ίδιους μηχανισμούς διαμόρφωσης με το πρότυπο JDK Java.χρησιμοποιώ.καταγραφή, χρησιμοποιώντας είτε μια προγραμματική προσέγγιση είτε αρχεία ιδιοτήτων. Η κύρια διαφορά είναι ότι μπορούν να ρυθμιστούν αρχεία ιδιοτήτων ανά classloader (τα οποία επιτρέπουν την εύκολη διαμόρφωση της ανακατασκευής WebApp) και τα αρχεία ιδιοτήτων υποστηρίζουν εκτεταμένες κατασκευές που επιτρέπουν περισσότερη ελευθερία για τον ορισμό των χειριστών και την ανάθεση τους στους καταγραφείς.
Η Juli είναι ενεργοποιημένη από προεπιλογή και υποστηρίζει ανά διαμόρφωση classloader, εκτός από την κανονική παγκόσμια Java.χρησιμοποιώ.Διαμόρφωση καταγραφής. Αυτό σημαίνει ότι η καταγραφή μπορεί να ρυθμιστεί στα ακόλουθα στρώματα:
- Παγκοσμίως. Αυτό γίνεται συνήθως στο $/conf/καταγραφή.αρχείο ιδιοτήτων. Το αρχείο καθορίζεται από το Java.χρησιμοποιώ.ξύλευση.παραμέτρων.Ιδιότητα συστήματος αρχείων που έχει οριστεί από τα σενάρια εκκίνησης. Εάν δεν είναι ευανάγνωστο ή δεν έχει ρυθμιστεί, η προεπιλογή είναι να χρησιμοποιήσετε το $/lib/logging.Αρχείο ιδιοτήτων στο JRE.
- Στην εφαρμογή ιστού. Το αρχείο θα είναι web-inf/κλάσεις/καταγραφή.ιδιότητες
Την προεπιλεγμένη καταγραφή.Οι ιδιότητες στο JRE καθορίζουν ένα κονσολέδρες που δρομολογεί την καταγραφή στο σύστημα.πλανώμαι. Η προεπιλεγμένη καταγραφή/καταγραφή.Οι ιδιότητες στο Apache Tomcat προσθέτουν επίσης πολλά αρχεία που γράφουν σε αρχεία.
Το κατώτατο όριο στάθμης καταγραφής του χειριστή είναι από προεπιλογή πληροφορίες και μπορεί να ρυθμιστεί χρησιμοποιώντας σοβαρές, προειδοποιήσεις, πληροφορίες, config, fine, λεπτότερο, καλύτερο ή όλα. Μπορείτε επίσης να στοχεύσετε συγκεκριμένα πακέτα για να συλλέξετε την καταγραφή και να καθορίσετε ένα επίπεδο.
Για να ενεργοποιήσετε την καταγραφή εντοπισμού σφαλμάτων για μέρος των εσωτερικών του Tomcat, θα πρέπει να διαμορφώσετε τόσο τον κατάλληλο καταγραφέα όσο και τον κατάλληλο χειριστή (ες) για να χρησιμοποιήσετε το καλύτερο ή όλα τα επίπεδα. μι.σολ.:
org.απάχης.Καταλίνα.συνεδρία.Επίπεδο = Όλη η Java.χρησιμοποιώ.ξύλευση.Κονσολέτων.Επίπεδο = όλα
Κατά την ενεργοποίηση της καταγραφής εντοπισμού σφαλμάτων, συνιστάται να είναι ενεργοποιημένη για το πιο στενό εύρος, καθώς η καταγραφή εντοπισμού σφαλμάτων μπορεί να δημιουργήσει μεγάλα ποσά πληροφοριών.
Η διαμόρφωση που χρησιμοποιείται από τον Juli είναι η ίδια με αυτή που υποστηρίζεται από την απλή Java.χρησιμοποιώ.καταγραφή, αλλά χρησιμοποιεί μερικές επεκτάσεις για να επιτρέψει την καλύτερη ευελιξία στη διαμόρφωση των καταγραφικών και των χειριστών. Οι κύριες διαφορές είναι:
- Ένα πρόθεμα μπορεί να προστεθεί στα ονόματα χειριστή, έτσι ώστε πολλοί χειριστές μιας μόνο κλάσης να μπορούν να δημιουργηθούν. Ένα πρόθεμα είναι μια συμβολοσειρά που ξεκινά με ένα ψηφίο και τελειώνει με ‘.”. Για παράδειγμα, 22foobar. είναι ένα έγκυρο πρόθεμα.
- Η αντικατάσταση ακινήτων συστήματος πραγματοποιείται για τιμές ιδιοκτησίας που περιέχουν $.
- Εάν χρησιμοποιείτε έναν φορτωτή κλάσης που υλοποιεί το org.απάχης.σούφος.Η διασύνδεση WebAppproperties (φορτωτής κλάσης Web Application της Tomcat) και η αντικατάσταση ιδιοτήτων εκτελείται επίσης για $, $ και $ που αντικαθίστανται με το όνομα της εφαρμογής ιστού, το όνομα του κεντρικού υπολογιστή και το όνομα της υπηρεσίας αντίστοιχα.
- Από προεπιλογή, οι καταγραφείς δεν θα μεταβιβάσουν στον γονέα τους εάν έχουν συνδεδεμένους χειριστές. Αυτό μπορεί να αλλάξει ανά καταγραφέα χρησιμοποιώντας το όνομα LoggerName.useparenthandlers property, η οποία δέχεται μια τιμή boolean.
- Ο καταγραφέας ρίζας μπορεί να καθορίσει το σύνολο των χειριστών του χρησιμοποιώντας το .ιδιοκτησία χειριστών.
- Από προεπιλογή, τα αρχεία καταγραφής θα διατηρούνται για πάντα στο σύστημα αρχείων για πάντα. Αυτό μπορεί να αλλάξει ανά χειριστή χρησιμοποιώντας το handlername.ιδιοκτησία maxdays. Εάν η καθορισμένη τιμή για την ιδιοκτησία είναι
Υπάρχουν αρκετές πρόσθετες κατηγορίες εφαρμογής, που μπορούν να χρησιμοποιηθούν μαζί με αυτά που παρέχονται από την Java. Το αξιοσημείωτο είναι org.απάχης.σούφος.Αρχειοφόρος .
org.απάχης.σούφος.Το FileHandler υποστηρίζει το buffering των αρχείων καταγραφής. Το buffering δεν είναι ενεργοποιημένο από προεπιλογή. Για να το διαμορφώσετε, χρησιμοποιήστε την ιδιότητα buffersize ενός χειριστή. Η τιμή του 0 χρησιμοποιεί προεπιλεγμένη buffering συστήματος (συνήθως θα χρησιμοποιηθεί ένα buffer 8k). Μια τιμή 0 χρησιμοποιεί ένα bufferedoutputstream με την καθορισμένη τιμή, αλλά σημειώστε ότι το προεπιλεγμένο buffering του συστήματος θα εφαρμοστεί επίσης.
Παράδειγμα καταγραφής.Αρχείο ιδιοτήτων που θα τοποθετηθεί στο $ catalina_base/conf:
χειριστές = 1Catalina.org.απάχης.σούφος.FileHandler, \ 2Localhost.org.απάχης.σούφος.FileHandler, \ 3Manager.org.απάχης.σούφος.FileHandler, \ java.χρησιμοποιώ.ξύλευση.Κονσολέτων .χειριστές = 1Catalina.org.απάχης.σούφος.FileHandler, Java.χρησιμοποιώ.ξύλευση.ConsoleHandler #################################################Ειδικές ιδιότητες χειριστή. # Περιγράφει συγκεκριμένες πληροφορίες διαμόρφωσης για χειριστές. ############################################################################.org.απάχης.σούφος.Αρχειοφόρος.Επίπεδο = πρόστιμο 1Catalina.org.απάχης.σούφος.Αρχειοφόρος.κατάλογος = $/αρχεία καταγραφής 1Catalina.org.απάχης.σούφος.Αρχειοφόρος.πρόθεμα = catalina. 2localhost.org.απάχης.σούφος.Αρχειοφόρος.Επίπεδο = λεπτό 2LocalHost.org.απάχης.σούφος.Αρχειοφόρος.κατάλογος = $/αρχεία καταγραφής 2LocalHost.org.απάχης.σούφος.Αρχειοφόρος.πρόθεμα = localhost. 3Manager.org.απάχης.σούφος.Αρχειοφόρος.Επίπεδο = λεπτό 3Manager.org.απάχης.σούφος.Αρχειοφόρος.κατάλογος = $/logs 3Manager.org.απάχης.σούφος.Αρχειοφόρος.πρόθεμα = διαχειριστής. 3Manager.org.απάχης.σούφος.Αρχειοφόρος.buffersize = 16384 java.χρησιμοποιώ.ξύλευση.Κονσολέτων.Επίπεδο = λεπτή java.χρησιμοποιώ.ξύλευση.Κονσολέτων.formatter = java.χρησιμοποιώ.ξύλευση.SimpleFormatter #################################################Ειδικές ιδιότητες. # Παρέχει επιπλέον έλεγχο για κάθε καταγραφέα. ###############################################################################.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].επίπεδο = info org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].χειριστές = \ 2LocalHost.org.απάχης.σούφος.Filehandler org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].[/διευθυντής].επίπεδο = info org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].[/διευθυντής].χειριστές = \ 3Manager.org.απάχης.σούφος.FileHandler # για παράδειγμα, ορίστε το org.απάχης.Καταλίνα.χρησιμοποιώ.LifecyCleBase Logger στο Log # Κάθε στοιχείο που επεκτείνει την κατάσταση αλλαγής LifeCyCleBase: #org.απάχης.Καταλίνα.χρησιμοποιώ.Κύριος κύκλος ζωής.Επίπεδο = πρόστιμο
Παράδειγμα καταγραφής.Ιδιότητες για την εφαρμογή Web Servlet-Seatples που θα τοποθετηθεί σε web-inf/κλάσεις μέσα στην εφαρμογή Web:
χειριστές = org.απάχης.σούφος.FileHandler, Java.χρησιμοποιώ.ξύλευση.ConsoleHandler #################################################Ειδικές ιδιότητες χειριστή. # Περιγράφει συγκεκριμένες πληροφορίες διαμόρφωσης για χειριστές. ###############################################################################.απάχης.σούφος.Αρχειοφόρος.Επίπεδο = λεπτό org.απάχης.σούφος.Αρχειοφόρος.κατάλογος = $/αρχεία καταγραφής org.απάχης.σούφος.Αρχειοφόρος.πρόθεμα = $. Ιάβα.χρησιμοποιώ.ξύλευση.Κονσολέτων.Επίπεδο = λεπτή java.χρησιμοποιώ.ξύλευση.Κονσολέτων.formatter = java.χρησιμοποιώ.ξύλευση.Απλή πλατφόρμα
Αναφορές τεκμηρίωσης
Δείτε τους ακόλουθους πόρους για πρόσθετες πληροφορίες:
- Apache tomcat javadoc για το org.απάχης.πακέτο Juli.
- Oracle Java 6 Javadoc για την Java.χρησιμοποιώ.πακέτο καταγραφής.
Σκέψεις για τη χρήση παραγωγής
Μπορεί να θέλετε να λάβετε υπόψη τα εξής:
- Εξετάστε το ενδεχόμενο να αφαιρέσετε το ConsoleHandler από τη διαμόρφωση. Από προεπιλογή (χάρη στο .ρύθμιση χειριστών) Η καταγραφή πηγαίνει τόσο σε ένα αρχείο Handhandler όσο και σε ένα κονσολέδρες . Η έξοδος του τελευταίου συνήθως συλλαμβάνεται σε ένα αρχείο, όπως η Catalina.έξω . Έτσι καταλήγετε με δύο αντίγραφα των ίδιων μηνυμάτων.
- Εξετάστε το ενδεχόμενο να αφαιρέσετε το FileHandler S για τις εφαρμογές που δεν χρησιμοποιείτε. μι.σολ., το ένα για τον διευθυντή του κεντρικού υπολογιστή .
- Οι χειριστές από προεπιλογή χρησιμοποιούν την προεπιλεγμένη κωδικοποίηση του συστήματος για να γράψετε τα αρχεία καταγραφής. Μπορεί να ρυθμιστεί με ιδιοκτησία κωδικοποίησης. Δείτε Javadoc για λεπτομέρειες.
- Εξετάστε τη διαμόρφωση ενός αρχείου καταγραφής πρόσβασης.
Χρήση log4j
Αυτή η ενότητα εξηγεί τον τρόπο διαμόρφωσης του Tomcat για να χρησιμοποιήσετε το log4j και όχι το Java.χρησιμοποιώ.καταγραφή για την εσωτερική καταγραφή του Tomcat.
Σημείωση: Τα βήματα που περιγράφονται σε αυτή την ενότητα απαιτούνται όταν θέλετε να επαναπροσδιορίσετε το Tomcat για να χρησιμοποιήσετε το Apache Log4J για τη δική του καταγραφή. Αυτά τα βήματα είναι δεν χρειάζεται αν θέλετε απλώς να χρησιμοποιήσετε το log4j στη δική σας εφαρμογή ιστού. – Σε αυτή την περίπτωση, απλά βάλτε log4j.βάζο και log4j.Ιδιότητες σε web-inf/lib και web-inf/τάξεις της εφαρμογής ιστού σας.
Τα παρακάτω βήματα περιγράφουν τη διαμόρφωση του log4j στην εσωτερική καταγραφή του Tomcat.
- Δημιουργήστε ένα αρχείο που ονομάζεται log4j.ιδιότητες με το ακόλουθο περιεχόμενο και αποθηκεύστε το σε $ catalina_base/lib
log4j.rootLogger = info, catalina # Ορίστε όλους τους προσαρτητές log4j.ερείπια.Catalina = org.απάχης.log4j.Dailyrollingfileappender log4j.ερείπια.Καταλίνα.Αρχείο = $/logs/catalina log4j.ερείπια.Καταλίνα.Προσάρτημα = True Log4J.ερείπια.Καταλίνα.Κωδικοποίηση = utf-8 # roll-roll-roll-over το αρχείο καταγραφής μία φορά την ημέρα log4j.ερείπια.Καταλίνα.DatePattern = '.'Yyyy-mm-dd'.log 'log4j.ερείπια.Καταλίνα.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.Καταλίνα.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.ερείπια.LocalHost = org.απάχης.log4j.Dailyrollingfileappender log4j.ερείπια.Τοπικός.Αρχείο = $/logs/localhost log4j.ερείπια.Τοπικός.Προσάρτημα = True Log4J.ερείπια.Τοπικός.Κωδικοποίηση = utf-8 log4j.ερείπια.Τοπικός.DatePattern = '.'Yyyy-mm-dd'.log 'log4j.ερείπια.Τοπικός.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.Τοπικός.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.ερείπια.Διαχειριστή = org.απάχης.log4j.Dailyrollingfileappender log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.Αρχείο = $/logs/manager log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.Προσάρτημα = True Log4J.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.Κωδικοποίηση = utf-8 log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.DatePattern = '.'Yyyy-mm-dd'.log 'log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.ερείπια.Host-manager = org.απάχης.log4j.Dailyrollingfileappender log4j.ερείπια.Διοργανωτής.Αρχείο = $/logs/host-manager log4j.ερείπια.Διοργανωτής.Προσάρτημα = True Log4J.ερείπια.Διοργανωτής.Κωδικοποίηση = utf-8 log4j.ερείπια.Διοργανωτής.DatePattern = '.'Yyyy-mm-dd'.log 'log4j.ερείπια.Διοργανωτής.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.Διοργανωτής.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.ερείπια.Κονσόλα = org.απάχης.log4j.Log4J ConsoreAppender.ερείπια.ΚΟΝΣΟΛΑ.Κωδικοποίηση = utf-8 log4j.ερείπια.ΚΟΝΣΟΛΑ.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.ΚΟΝΣΟΛΑ.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n # Διαμορφώστε ποιοι καταγραφείς συνδέονται με ποιους προσαρτητές log4j.κόπτων δέντρα διά ξυλείαν.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost] = info, localhost log4j.κόπτων δέντρα διά ξυλείαν.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].[/manager] = \ info, διαχειριστή log4j.κόπτων δέντρα διά ξυλείαν.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].[/host-manager] = \ info, host-manager
- Λήψη log4j (Το Tomcat απαιτεί V1.2.Χ).
- Λήψη ή οικοδόμηση Tomcat-Juli.Jar και Tomcat-Juli-Adapters.βάζο που είναι διαθέσιμο ως στοιχείο “extras” για το Tomcat. Δείτε την τεκμηρίωση πρόσθετων στοιχείων για λεπτομέρειες. Αυτό το tomcat-juli.Το βάζο διαφέρει από το προεπιλεγμένο. Περιέχει την πλήρη εφαρμογή καταγραφής Apache Commons και έτσι είναι σε θέση να ανακαλύψει την παρουσία του log4j και να διαμορφωθεί τον εαυτό της.
- Εάν θέλετε να διαμορφώσετε το Tomcat για να χρησιμοποιήσετε το log4j παγκοσμίως:
- Βάλτε log4j.Jar και Tomcat-Juli-Adapters.βάζο από “extras” σε $ catalina_home/lib .
- Αντικαταστήστε το $ catalina_home/bin/tomcat-juli.βάζο με tomcat-juli.βάζο από “extras”.
- Εάν εκτελείτε το Tomcat με ξεχωριστό $ catalina_home και $ catalina_base και θέλετε να διαμορφώσετε τη χρήση log4j μόνο σε ένα μόνο $ catalina_base:
- Δημιουργήστε $ catalina_base/bin και $ catalina_base/lib καταλόγους αν δεν υπάρχουν.
- Βάλτε log4j.Jar και Tomcat-Juli-Adapters.βάζο από “extras” σε $ catalina_base/lib
- Βάλτε το Tomcat-Juli.βάζο από “extras” ως $ catalina_base/bin/tomcat-juli.δοχείο
- Εάν τρέχετε με έναν διαχειριστή ασφαλείας, θα πρέπει να επεξεργαστείτε το $ catalina_base/conf/catalina.Αρχείο πολιτικής για να το προσαρμόσετε στη χρήση ενός διαφορετικού αντιγράφου του Tomcat-Juli.δοχείο.
Σημείωση: Αυτό λειτουργεί επειδή οι βιβλιοθήκες, αν υπάρχουν στο $ catalina_base, φορτώνονται κατά προτίμηση στην ίδια βιβλιοθήκη στο $ catalina_home .
Σημείωση: Tomcat-Juli.Το βάζο είναι φορτωμένο από $ catalina_base /bin not $ catalina_base /lib καθώς φορτώνεται ως μέρος της διαδικασίας bootstrap και όλες οι κλάσεις bootstrap φορτώνονται από το bin.
Αυτή η διαμόρφωση log4j αντικατοπτρίζει την προεπιλεγμένη Java.χρησιμοποιώ.ρύθμιση καταγραφής που μεταδίδει με το Tomcat: Τόσο οι εφαρμογές διαχειριστή όσο και ο κεντρικός υπολογιστής παίρνουν ένα μεμονωμένο αρχείο καταγραφής και όλα τα άλλα πηγαίνουν στην “Catalina.αρχείο καταγραφής καταγραφής “. Κάθε αρχείο είναι τυλιγμένο μία φορά την ημέρα.
Μπορείτε (και πρέπει) να είναι πιο επιλεκτικό για τα πακέτα που πρέπει να συμπεριλάβετε στην καταγραφή. Το Tomcat ορίζει τους καταγραφείς με ονόματα κινητήρων και κεντρικών υπολογιστών. Για παράδειγμα, για ένα πιο λεπτομερές αρχείο καταγραφής Catalina Localhost, προσθέστε αυτό στο τέλος του log4j.Πάνω από ακίνητα. Σημειώστε ότι υπάρχουν γνωστά ζητήματα με τη χρήση αυτής της σύμβασης ονομασίας (με τετράγωνες αγκύλες) σε αρχεία διαμόρφωσης που βασίζονται σε Log4J XML, οπότε συνιστούμε να χρησιμοποιήσετε ένα αρχείο ιδιοτήτων όπως περιγράφεται μέχρι μια μελλοντική έκδοση του Log4J επιτρέπει σε αυτή τη σύμβαση.
log4j.κόπτων δέντρα διά ξυλείαν.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost] = debug log4j.κόπτων δέντρα διά ξυλείαν.org.απάχης.Καταλίνα.core = debug log4j.κόπτων δέντρα διά ξυλείαν.org.απάχης.Καταλίνα.Σύνοδος = Debug
Προειδοποιήστε: Ένα επίπεδο εντοπισμού σφαλμάτων θα παράγει megabytes της καταγραφής και αργής εκκίνησης του Tomcat. Αυτό το επίπεδο θα πρέπει να χρησιμοποιείται με φειδώ όταν απαιτείται η απομάκρυνση των εσωτερικών λειτουργιών Tomcat.
Οι εφαρμογές ιστού σας θα πρέπει σίγουρα να χρησιμοποιούν τη δική τους διαμόρφωση log4j. Αυτό ισχύει με την παραπάνω διαμόρφωση. Θα τοποθετήσετε ένα παρόμοιο log4j.Αρχείο ιδιοτήτων στον κατάλογο Web-Inf/Classes της εφαρμογής σας και log4jx.y.z.βάζο σε web-inf/lib. Στη συνέχεια, καθορίστε την καταγραφή του επιπέδου του πακέτου σας. Αυτή είναι μια βασική ρύθμιση του log4j που δεν απαιτεί * commons-logging, και θα πρέπει να συμβουλευτείτε την τεκμηρίωση log4j για περισσότερες επιλογές. Αυτή η σελίδα προορίζεται μόνο ως οδηγός εκκίνησης.
- Αυτό εκθέτει βιβλιοθήκες log4j στις εφαρμογές ιστού μέσω του κοινού classloader. Δείτε την τεκμηρίωση φόρτωσης κλάσης για λεπτομέρειες. Λόγω αυτού, οι εφαρμογές και οι βιβλιοθήκες Web που χρησιμοποιούν βιβλιοθήκη καταγραφής Apache Commons είναι πιθανό να επιλέξουν αυτόματα το Log4J ως την υποκείμενη υλοποίηση καταγραφής.
- Η Java.χρησιμοποιώ.Το API καταγραφής είναι ακόμα διαθέσιμο για εκείνες τις εφαρμογές ιστού που το χρησιμοποιούν απευθείας. Το $/conf/καταγραφή.Το αρχείο ιδιοτήτων εξακολουθεί να αναφέρεται από σενάρια εκκίνησης Tomcat. Για περισσότερες πληροφορίες, ανατρέξτε στα υποτμήματα της εισαγωγής σε αυτήν τη σελίδα. Αφαίρεση $/conf/καταγραφή.Αρχείο ιδιοτήτων, το οποίο αναφέρεται ως ένα από τα παραπάνω βήματα, προκαλεί Java.χρησιμοποιώ.Η καταγραφή για την προετοιμασία της προεπιλεγμένης διαμόρφωσης για το JRE, η οποία είναι να χρησιμοποιήσετε ένα κονσολέδερ και επομένως να μην δημιουργήσετε τυπικά αρχεία καταγραφής. Θα πρέπει να επιβεβαιώσετε ότι όλα τα αρχεία καταγραφής σας δημιουργούνται από το log4j πριν Απενεργοποίηση του τυπικού μηχανισμού.
- ο Βαλβίδα καταγραφής πρόσβασης και ExtendedAccessLogvalve Χρησιμοποιήστε τη δική τους αυτοτελής υλοποίηση καταγραφής, έτσι δεν μπορεί να ρυθμιστεί να χρησιμοποιεί log4j. Ανατρέξτε σε βαλβίδες για συγκεκριμένες λεπτομέρειες διαμόρφωσης.
Σχόλια
Ειδοποίηση: Αυτή η ενότητα σχολίων συλλέγει τις προτάσεις σας σχετικά με τη βελτίωση της τεκμηρίωσης για το Apache Tomcat.
Εάν έχετε πρόβλημα και χρειάζεστε βοήθεια, διαβάστε τη σελίδα Βρήκε και ρωτήστε την ερώτησή σας στη λίστα αλληλογραφίας Tomcat-Users. Μην θέσετε τέτοιες ερωτήσεις εδώ. Αυτό δεν είναι τμήμα Q & A.
Το σύστημα σχολίων Apache εξηγείται εδώ. Τα σχόλια μπορούν να απομακρυνθούν από τους συντονιστές μας εάν εφαρμοστούν ή θεωρούνται άκυροι/εκτός θέματος.
Ρύθμιση διαμόρφωσης tomcat log4j
Η βιβλιοθήκη και η διαμόρφωση της καταγραφής Juli είναι διαθέσιμα από προεπιλογή με το πρόγραμμα εγκατάστασης Tomcat. Προκειμένου να χρησιμοποιήσετε το log4j για την εσωτερική καταγραφή του Tomcat, θα πρέπει να αντικαταστήσετε την υπάρχουσα βιβλιοθήκη Juli με την ολοκλήρωση Log4J-Juli.
1. Διαγράψτε την υπάρχουσα βιβλιοθήκη Juli (Catalina_Home/Bin/Tomcat-Juli.αρχείο JAR) και το υπάρχον αρχείο διαμόρφωσης καταγραφής Java (Catalina_Home/Conf/Logging.ιδιότητες).
2. Κατεβάστε τη βιβλιοθήκη Juli Log4J Tomcat (Tomcat-Juli.JAR) από τις λήψεις Tomcat’ Τμήμα extras (http: // tomcat.απάχης.org/download-70.CGI). Τοποθετήστε το αρχείο που κατεβάστηκε στον κατάλογο CATALINA_HOME/BIN.
3. Κατεβάστε τη βιβλιοθήκη προσαρμογέα Tomcat Juli (Tomcat-Juli-Adapters.JAR) από τις λήψεις Tomcat’ Επιπλέον τμήμα. Τοποθετήστε αυτό το αρχείο στον κατάλογο CATALINA_HOME/LIB.
4. Λήψη log4j (έκδοση 1.2 ή μεταγενέστερη) και τοποθετήστε το αρχείο βιβλιοθήκης που κατεβάστηκε στον κατάλογο Catalina_Home/LIB.
5. Δημιουργήστε το αρχείο διαμόρφωσης log4j στην ακόλουθη τοποθεσία: catalina_home/lib/log4j.ιδιότητες. Ελέγξτε παρακάτω το log4j που ταιριάζει με την προεπιλεγμένη διαμόρφωση καταγραφής Java.
6. Επανεκκινήστε το Tomcat.
Log4j Αρχείο διαμόρφωσης αντιστοίχιση των προεπιλεγμένων ρυθμίσεων καταγραφής Tomcat:
log4j.rootLogger = info, catalina # Ορίστε όλους τους προσαρτητές log4j.ερείπια.Catalina = org.απάχης.log4j.Dailyrollingfileappender log4j.ερείπια.Καταλίνα.Αρχείο = $/logs/catalina. log4j.ερείπια.Καταλίνα.Προσάρτημα = True Log4J.ερείπια.Καταλίνα.Κωδικοποίηση = utf-8 # roll-roll-roll-over το αρχείο καταγραφής μία φορά την ημέρα log4j.ερείπια.Καταλίνα.DatePattern = '.'Yyyy-mm-dd'.log 'log4j.ερείπια.Καταλίνα.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.Καταλίνα.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.ερείπια.LocalHost = org.απάχης.log4j.Dailyrollingfileappender log4j.ερείπια.Τοπικός.Αρχείο = $/logs/localhost. log4j.ερείπια.Τοπικός.Προσάρτημα = True Log4J.ερείπια.Τοπικός.Κωδικοποίηση = utf-8 log4j.ερείπια.Τοπικός.DatePattern = '.'Yyyy-mm-dd'.log 'log4j.ερείπια.Τοπικός.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.Τοπικός.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.ερείπια.Διαχειριστή = org.απάχης.log4j.Dailyrollingfileappender log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.Αρχείο = $/logs/manager. log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.Προσάρτημα = True Log4J.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.Κωδικοποίηση = utf-8 log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.DatePattern = '.'Yyyy-mm-dd'.log 'log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.ΔΙΕΥΘΥΝΤΗΣ.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.ερείπια.Host-manager = org.απάχης.log4j.Dailyrollingfileappender log4j.ερείπια.Διοργανωτής.Αρχείο = $/logs/host-manager. log4j.ερείπια.Διοργανωτής.Προσάρτημα = True Log4J.ερείπια.Διοργανωτής.Κωδικοποίηση = utf-8 log4j.ερείπια.Διοργανωτής.DatePattern = '.'Yyyy-mm-dd'.log 'log4j.ερείπια.Διοργανωτής.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.Διοργανωτής.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n log4j.ερείπια.Κονσόλα = org.απάχης.log4j.Log4J ConsoreAppender.ερείπια.ΚΟΝΣΟΛΑ.Κωδικοποίηση = utf-8 log4j.ερείπια.ΚΟΝΣΟΛΑ.διάταξη = org.απάχης.log4j.Patternlayout log4j.ερείπια.ΚΟΝΣΟΛΑ.διάταξη.ConversionPattern = %d [ %t] %-5p %c- %m %n # Διαμορφώστε ποιοι καταγραφείς συνδέονται με ποιους προσαρτητές log4j.κόπτων δέντρα διά ξυλείαν.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost] = info, localhost log4j.κόπτων δέντρα διά ξυλείαν.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].[/manager] = info, manager log4j.κόπτων δέντρα διά ξυλείαν.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].[/host-manager] = info, host-manager
Το Tomcat θα χρησιμοποιήσει τώρα log4j για όλες τις εσωτερικές καταγραφές.
Για να κατανοήσετε παραπάνω, ελέγξτε τις παρακάτω λεπτομέρειες για να λάβετε μια σαφή προβολή
Στοιχεία διαμόρφωσης για log4j’s patternlayout
%d Ημερομηνία καταγραφής. Μπορείτε να καθορίσετε το πρότυπο ημερομηνίας σε σγουρές αγκύλες ( %d) %c πλήρως εξειδικευμένο όνομα κλάσης (χρησιμοποιήστε %c για να εκτυπώσετε μόνο απλό όνομα κλάσης) %t Όνομα του νήματος όπου η καταγραφή εμφανίστηκε %f filename του συμβάντος καταγραφής %p levelging level %l line line του συμβάντος καταγραφής %m Το πραγματικό μήνυμα καταγραφής
Εδώ είναι μερικά από τα παραδείγματα μοτίβων και τις καταχωρήσεις καταγραφής που δημιούργησαν:
%d [ %t] %-5p %c- %m %n 2011-09-07 14: 07: 41,509 [Κύρια] Πληροφορίες MyNtClass-Εκτέλεση.
%5p [%t] (%f:%l) -%m%n info [main] (myntClass.Java: 12) - Εκτέλεση.
Για περισσότερες πληροφορίες σχετικά με το log4j checkout παρακάτω σύνδεσμος:
http: // καταγραφή.απάχης.org/log4j/ευρετήριο.HTML
Σε περίπτωση οποιουδήποτε © Copyright ή Missing Credits Issue, παρακαλούμε να ελέγξετε τη σελίδα πνευματικών δικαιωμάτων για ταχύτερες αναλύσεις.
Όπως το άρθρο. Μοιράσου το.
- Κάντε κλικ για εκτύπωση (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για να στείλετε email έναν σύνδεσμο σε έναν φίλο (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στο Reddit (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στο Pinterest (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στο LinkedIn (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στο WhatsApp (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στο Twitter (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στο Facebook (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στο Tumblr (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στην τσέπη (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στο τηλεγράφημα (ανοίγει σε νέο παράθυρο)
- Κάντε κλικ για κοινή χρήση στο Skype (ανοίγει σε νέο παράθυρο)
Πώς να: Διαμορφώστε το Tomcat 9 για να συνδεθείτε μέσω log4j2
Πώς μπορείτε να ανακατευθύνετε την εσωτερική καταγραφή του Tomcat 9 (Catalina και LocalHost) στο Log4J2? Ενώ υπάρχουν πολλοί οδηγοί διαθέσιμοι για παλαιότερες εκδόσεις των Tomcat και Log4J, δεν μπορούσα να βρω τίποτα “πλήρες” σχετικά με το Tomcat 9 και το Log4J2. Η τεκμηρίωση Apache Tomcat 9 δείχνει “τις οδηγίες που παρέχονται από το εναλλακτικό πλαίσιο καταγραφής” και τις καταστάσεις τεκμηρίωσης Apache Log4J (ονόματα Jar σε 2. διορθωμένο):
- Δημιουργία ενός συνόλου καταλόγων στο σπίτι Catalina που ονομάζεται Log4J2/Lib και Log4J2/Conf.
- Τοποθέτηση log4j-api-2.12.0.βάζο, log4j-core-2.12.0.JAR και LOG4J-APPSERVER-2.12.0.βάζο στον κατάλογο log4j2/lib.
- Δημιουργία ενός αρχείου που ονομάζεται log4j2-tomcat.XML, Log4J2-Tomcat.JSON, LOG4J2-TOMCAT.yaml, log4j2-tomcat.yml, ή log4j2-tomcat.Ιδιότητες στον κατάλογο log4j2/conf.
- Δημιουργία ή τροποποίηση setenv.SH στον κατάλογο Tomcat Bin για να συμπεριλάβετε classpath = $ catalina_home/log4j2/lib/*: $ catalina_home/log4j2/conf
Αλλά τι να βάλετε σε αυτό το log4j2-tomcat.* αρχείο ρυθμίσεων?
ρώτησε 5 Ιουλίου 2019 στις 12:33
682 1 1 χρυσό σήμα 6 6 ασημένια σήματα 17 17 χάλκινα κονκάρδες
2 απαντήσεις 2
Βρήκα ένα αρχείο ιδιοτήτων δείγματος στην τεκμηρίωση Apache Tomcat 7, αλλά δεδομένου ότι αυτό προορίζεται για χρήση με log4j 1.x, έπρεπε να το προσαρμόσω στη σύνταξη αρχείων Log4J2 Properties. Αυτό είναι το αποτέλεσμα:
# 'status' αναφέρεται σε μηνύματα καταγραφής από το log4j2 το ίδιο το monitorval = 30 status =.ογκός.Catalina = Ιδιότητα πληροφοριών.ογκός.localHost = Ιδιότητα πληροφοριών.διάταξη.Catalina = %d %-5p [ %t] %-22.22c %m %n ιδιοκτησία.διάταξη.localHost = %d %-5p [ %t] %-30.30c %m %n # ανατρέξτε τα αρχεία μία φορά το μήνα χρησιμοποιώντας το CrontriggerPolicy. ιδιοκτησία.υποταγή.Catalina = %D Property.υποταγή.LocalHost = %D Property.crontriggerschedule.Catalina = 0 0 0 1 * ? ιδιοκτησία.crontriggerschedule.localhost = 0 0 0 1 * ? ## ΠΡΟΜΗΘΕΙΑ # n.σι.: - Δεν χρειάζεται να καθορίσετε τους «προσαρτητές = Catalina, LocalHost, κονσόλα» # Δεδομένου ότι αυτά τα αναγνωριστικά δεν περιέχουν ».χαρακτήρες. # - Οι πολιτικές των αναγνωριστικών υπο -συστατικών και οι «cron» είναι αυθαίρετα # επιλεγμένες. Ο πραγματικός τύπος καθορίζεται μέσω του χαρακτηριστικού «τύπου». # - Το 'DirectWriterolloverStrategy' χρησιμοποιείται αυτόματα αφού δεν καθορίζεται το όνομα αρχείου. ερείπια.Καταλίνα.Τύπος = RollingFile Appender.Καταλίνα.Όνομα = RollingFile-Catalina Appender.Καταλίνα.filePattern = $/logs/catalina.$.καταγραφέας καταγραφής.Καταλίνα.διάταξη.Τύπος = PatternLayout Appender.Καταλίνα.διάταξη.μοτίβο = $ appender.Καταλίνα.πολιτικές.Τύπος = Προστασία πολιτικών.Καταλίνα.πολιτικές.κρόνλος.Τύπος = CrontriggeringPolicy.Καταλίνα.πολιτικές.κρόνλος.πρόγραμμα = $ appender.Καταλίνα.πολιτικές.κρόνλος.eventOnStartUp = True Appender.Καταλίνα.FilePerMissions = rw-r ------ προσαρμόζεται.Καταλίνα.FileOwner = Tomcat Appender.Καταλίνα.FileGroup = Adm Appender.Τοπικός.Τύπος = RollingFile Appender.Τοπικός.Όνομα = rollingfile-localhost appender.Τοπικός.filePattern = $/logs/localhost.$.καταγραφέας καταγραφής.Τοπικός.διάταξη.Τύπος = PatternLayout Appender.Τοπικός.διάταξη.μοτίβο = $ appender.Τοπικός.πολιτικές.Τύπος = Προστασία πολιτικών.Τοπικός.πολιτικές.κρόνλος.Τύπος = CrontriggeringPolicy.Τοπικός.πολιτικές.κρόνλος.πρόγραμμα = $ appender.Τοπικός.πολιτικές.κρόνλος.eventOnStartUp = True Appender.Τοπικός.FilePerMissions = rw-r ------ προσαρμόζεται.Τοπικός.FileOwner = Tomcat Appender.Τοπικός.filegroup = adm # uncomment εάν θέλετε να συνεχίσετε να καταγράφετε στην Catalina.μετά το Log4J2 αναλαμβάνει. #appender.ΚΟΝΣΟΛΑ.Τύπος = κονσόλα #Appender.ΚΟΝΣΟΛΑ.Όνομα = stdout #Appender.ΚΟΝΣΟΛΑ.διάταξη.Type = PatternLayout ## Διαμορφώστε ποιες καταγραφές καταγράφουν σε ποιους προσαρτητές rootlogger.Επίπεδο = $ rootlogger.appenderref.Καταλίνα.ref = rollingfile-catalina #rootlogger.appenderref.στεγανόστρωμα.ref = stdout # εδώ, το αναγνωριστικό περιέχει '.«χαρακτήρες, οπότε πρέπει να καθορίσουμε τη λίστα. loggers = org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost] καταγραφέας.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].Όνομα = localhost logger.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].Επίπεδο = $ logger.org.απάχης.Καταλίνα.πυρήνας.Εμπορευματοκιβώτιο.[Catalina].[localhost].appenderref.Τοπικός.ref = rollingfile-localhost
Ο κύριος λόγος για μένα να χρησιμοποιήσω το log4j2 ήταν να μπορέσω να πάρει μηνιαία περιστροφή αρχείου καταγραφής, αλλά μπορείτε εύκολα να προσαρμόσετε όλα όσα θέλετε, ακόμη και χωρίς να κάνετε επανεκκίνηση του Tomcat.