Log4j 2.x tamamen program aracılığıyla nasıl yapılandırılır? | tutuappapks.com
Nasıl yapılandırabilirim? log4j 2.3 ile console appender Programatik olarak (herhangi bir formatta yapılandırma dosyası yok)?
Temelde bunun 2.x versiyonunu arıyorum 1.x kodu.
Derslerimde daha sonra kullanırdım
Herhangi bir yapılandırma olmadan (beklendiği gibi)
HATA StatusLogger Log4j2 yapılandırma dosyası bulunamadı. Varsayılan yapılandırmayı kullanma: yalnızca hataları konsolda günlüğe kaydetme.
Konfigürasyon dosyaları kullanılırken uygun şekilde belgelenmişBen sadece çıplak kemik kodlu bir vakaya iyi bir örnek bulamadım.
Elime en yakın olan Bu makale Bu hala bir kukla dosya kullanır.
İşte elimden geleni (tamamen başarısız olsa da):
Eğer hala bir RTFM vakası varsa, lütfen beni doğru yöne doğrultun.
log4j2 doğrudan, herhangi bir slf4j olmadan? - Sotirios Delimanolis
@SotiriosDelimanolis - Evet, niyet buydu. - PM 77-1
Saf programlı yapılandırma, yakın zamana kadar da günlüğe kaydedildi. Görmek stackoverflow.com/questions/22335441/.... . Bu SO postunda log4j2'yi init kodumu kullanarak önyükleme yapamayacağım bir log4j2 bağlantısı var ama en son logback init işlemini kontrol etmenizi sağlayacak. - Adam Gent
Aradığın şeyin bu olduğundan emin değilim. Bu, varsayılan bir yapılandırma oluşturur ve bir konsol günlüğü ekler. Ancak, LogManager.getLogger () çalışmaz ve LogManager.getContext (). GetLogger () kullanarak günlük kaydedici hiyerarşisine izin vermez. Dürüstçe programatik yaklaşımı önermiyorum, Log4j2 buna alerjisi var.
Burada log4j 2.8 programlı konfigürasyon için tam bir örnek. 3 ekleyiciye sahiptir: RollingFile, JDBC ve SMTP.
Sınıfı log4j2 configurationFactory olarak kaydetmek için diğeri log dosyası dizini gibi set özellikleri için 1 sınıf ve 2 özellik yapılandırma dosyası vardır.
Sınıf 1: MPLoggingConfiguration
Yapılandırma dosyası: src / main / resources / log4j2.component.properties
Yapılandırma dosyası: src / main / resources / log4j2websitester.json
Benim durumumda, tüm sınıfları (örneğin, System.getProperty aracılığıyla MPLoggingConfiguration aracılığıyla erişilen) diğer sınıflarda ayarladım:
Bazı özellikleri değiştirdiğinizde ve log4j2'yi yeniden yapılandırmak istediğinizde, bu çağrıyı yapmanız gerekir:
HATA StatusLogger Log4j2 yapılandırma dosyası bulunamadı. Varsayılan yapılandırmayı kullanma: yalnızca hataları konsolda günlüğe kaydetme. Log4j2 dahili başlatma logging ..... göstermek için sistem özelliğini 'log4j2.debug' olarak ayarlayın. lütfen yardım et - this_is_om_vm
Yanıtı düzenler, "configFile" özelliğini içeren ilk yapılandırma dosyasını değiştirir ve yeni yapılandırma dosyasının içeriğini içerir. - Carlos Cuesta
Kendi ConfigurationFactory'nizi log4j'de özelleştirebilirsiniz. Pls bakın https://logging.apache.org/log4j/2.x/manual/customconfig.html. İhtiyaçlarınızı karşılayabiliyor gibi görünüyor.
Bunun için özür dilerim. Bu şekilde ihtiyacınızı karşılıyor mu? Ben sadece test ediyorum ve yine de yukarıda bahsettiğiniz hata mesajını vermesine rağmen iyi çalışıyor.
Sorumu yanlış anladığına inanıyorum. Herhangi bir yapılandırma dosyasının varlığına güvenmeyen basit yapılandırmaların nasıl sıfırdan oluşturulacağını soruyordum. - PM 77-1
ihtiyacım var ConsoleAppender Kullandığımda sorun çıkarmayacak şekilde yapılandırılmış LogManager.getLogger() ana kodumda. - PM 77-1
LoggerContext'in ilk dökümü gereksiz görünüyor çünkü bu yöntem zaten bir tane döndürüyor. Ancak LoggerContext'in de getConfiguration () adında bir yöntemi yoktur. - Trejkaz
@Trejkaz Log4J2'de iki LoggerContext tanımı vardır: biri bir arabirim ve bir sınıf. Oyuncu, getConfiguration () yöntemine sahip olan sınıfa girmek için gereklidir. - Mike
Eğer konsol eklentisi için isterseniz, maven kullanıyorsanız, bu 2 bağımlılığı pom.xml 'e koymanız ve her şeyin ur konsolunda basılması çok kolay bir yol olacaktır. hiçbir şeye gerek yok ... no log4j.properties dosyası hiç. slf4j, log4j'yi genişletir ve çok zengin özelliklere sahiptir.