muszę zmienić swoje właściwości Log4J (rootLogger, MaxFileSize, itd.) W czasie wykonywania. Jak mogę to zrobić?Zmiana właściwości w czasie wykonywania log4j
Odpowiedz
Dwa użytecznych odnośników:
Stosować LogManager.resetConfiguration();
aby usunąć bieżący config i skonfigurować go ponownie.
Innym rozwiązaniem jest zbudowanie nowego appender i zastąpić stary z nim (większość appenders nie obsługują zmianę ich config). W ten sposób wszystkie rejestratory (i ich poziomy itd.) Pozostają nienaruszone.
Aby to działało, zwykle dodać pierwszy appender z kodu (a nie z pliku konfiguracyjnego). To pozwala mi zapisać referencję, co ułatwia jej późniejsze usunięcie.
Nie zrozumiałem. Czy możesz wyjaśnić lepiej? Mam pięć rejestratora za pomocą konfiguracji log4j ... Muszę zmienić MaxFileSize (tj) i ustawić nowy rekwizyt dla wszystkich moich wywożący drewno (przy starcie) ... – user1110002
Rejestrator jest tylko klucz. Nie ma MaxFileSize. Rozmiar pliku jest własnością * aplikanta *. Dodatki mogą być dołączone do rejestratorów i będą robić coś z komunikatami dziennika. Więc co musisz zrobić: Znajdź ** aplikantów ** (loggers mają metody, aby uzyskać wszystkie dołączone rejestratory), a następnie musisz je zastąpić. –
Ok Aaron. Spróbowałem zrobić z tym kodem: Logger l = Logger.getLogger (myclass); LogManager.resetConfiguration(); l.setLevel (Level.DEBUG); RollingFileAppender appender = new RollingFileAppender(); appender.setMaxBackupIndex (numberOfLogsToKeep); logger.addAppender (appender); To nie działa. Jak mogę zmienić dostawcę mojego loggera? – user1110002
https://github.com/apache/jena/blob/master/jena-tdb/log4j.properties zawiera plik właściwości log4j.
W oparciu o nią używam funkcji configureLog4j pomocnika pokazany poniżej tak:
zestaw poziom rejestrowania Jena przy starcie
String level=org.apache.log4j.Level.OFF.toString();
if (debug)
level=org.apache.log4j.Level.INFO.toString();
configureLog4j(level);
funkcja configureLog4J
/**
* configure Log4J
* @param level -the level to use e.g. "INFO", "DEBUG", "OFF"
* see org.apache.log4j.Level
*/
private void configureLog4j(String level) {
Properties props = new Properties();
props.put("log4j.rootLogger", level+", stdlog");
props.put("log4j.appender.stdlog", "org.apache.log4j.ConsoleAppender");
props.put("log4j.appender.stdlog.target", "System.out");
props.put("log4j.appender.stdlog.layout", "org.apache.log4j.PatternLayout");
props.put("log4j.appender.stdlog.layout.ConversionPattern",
"%d{HH:mm:ss} %-5p %-25c{1} :: %m%n");
// Execution logging
props.put("log4j.logger.com.hp.hpl.jena.arq.info", level);
props.put("log4j.logger.com.hp.hpl.jena.arq.exec", level);
// TDB loader
props.put("log4j.logger.org.apache.jena.tdb.loader", level);
// Everything else in Jena
props.put("log4j.logger.com.hp.hpl.jena", level);
props.put("log4j.logger.org.apache.jena.riot", level);
// TDB
// TDB syslog.
props.put("log4j.logger.TDB", level);
props.put("log4j.logger.com.hp.hpl.jena.tdb", level);
props.put("log4j.logger.com.hp.hpl.jena.tdb.transaction", level);
props.put("log4j.logger.com.hp.hpl.jena.tdb.transaction.NodeTableTrans",
level);
props.put("log4j.logger.com.hp.hpl.jena.tdb.transaction.TransactionManager",level);
props.put("log4j.logger.com.hp.hpl.jena.tdb.transaction.TestTransSystem",level);
// Joseki server
props.put("log4j.logger.org.joseki", level);
LogManager.resetConfiguration();
PropertyConfigurator.configure(props);
}
- 1. Jak dostosować poziomy log4j w czasie wykonywania?
- 2. Pobieranie listy załączników Log4J w czasie wykonywania
- 3. Zmiana parametru atrybutu niestandardowego w czasie wykonywania
- 4. Zmiana koloru wiersza JList w czasie wykonywania
- 5. Zmiana rozmiaru THREE.CubeGeometry w czasie wykonywania
- 6. Zmiana implementacji/klasy w czasie wykonywania
- 7. Tworzenie komponentów w czasie wykonywania - Delphi
- 8. Zmiana nazwy pliku dziennika kilka razy w czasie wykonywania
- 9. Powielanie składników w czasie wykonywania
- 10. Ładowanie XAML w czasie wykonywania?
- 11. Zmiana adresu punktu końcowego usługi WebService w czasie wykonywania
- 12. Zmiana szerokości paska postępu dodanego w czasie wykonywania
- 13. WPF - zmiana globalnej wielkości czcionki w czasie wykonywania
- 14. Zmiana wzorca lub układu konwersji log4net w czasie wykonywania
- 15. WPF i MVVM: Zmiana konwertera powiązania danych w czasie wykonywania
- 16. Pętla przez wszystkie właściwości obiektu w czasie wykonywania
- 17. Czy można zmienić właściwości WebReference w czasie wykonywania?
- 18. Jak zmieniać wartości właściwości w czasie wykonywania na wiosnę
- 19. NHibernate: dostęp do właściwości konfiguracji (dialekt Sql) w czasie wykonywania
- 20. Jak zarządzać dwoma zestawami właściwości w czasie wykonywania?
- 21. dynamiczny JContainer (JSON.NET) i iteracja właściwości w czasie wykonywania
- 22. log4j StringToMatch w pliku właściwości
- 23. Jak ustawić plik właściwości log4j?
- 24. Log4j: Tworzenie/modyfikowanie aplikacji w czasie wykonywania, odtworzenie pliku dziennika i niepowiązanie
- 25. Awaria OCMock w czasie wykonywania
- 26. metoda wywołania w czasie wykonywania
- 27. Rejestrowanie metoda czasie wykonywania
- 28. skonfigurować log4j, aby zalogować się do niestandardowego pliku w czasie wykonywania
- 29. Java - Właściwości: Dodaje nowe klucze do pliku właściwości w czasie wykonywania?
- 30. właściwości Ładowanie Log4J z pakietu w java
Może to może pomóc: http://www.avajava.com/tutorials/lessons/how-do-i-change-my-log4j-settings-whi le-my-web-aplikacji-is-running.html – alonp
W log4j 2.x 'org.apache.logging.log4j.core.config.Configurator' mogą być pomocne w niektórych przypadkach https://logging.apache.org/ log4j/2.x/faq.html # reconfig_level_from_code –