2011-03-16 16 views
6

Wprowadzam logowanie do Pythona w mojej aplikacji i chcę móc wykorzystać "domyślne" ustawienia root. Chcę użyć ustawień root'a, ponieważ nie chcę definiować rejestratora dla modułu w pliku konfiguracyjnym.Wyłącz rejestrowanie dla konkretnej paczki

Po włączeniu rejestrowania poziomu DEBUG dla głównego programu rejestrującego, pojawia się problem z interfejsem API klienta Python QPID. Moje pliki dziennika dostać zalany qpid sprawozdania Debug:

2011-03-16 09: 16: 18.664 - qpid.messaging.io.ops - DEBUG - Wysłane [8de6b2c]: ..

2011- 03-16 09: 16: 18,667 - qpid.messaging.io.raw - DEBUG - ..

2011-03-16 09: 16: 18,668 - qpid.messaging.io.raw - DEBUG - CZYTAJ [8de6b2c] ..

2011-03-16 09: 16: 18.668 - qpid.messaging.io.ops - DEBUG - ..

itp ..

Więc dwa główne pytania:

1) Czy istnieje sposób, aby umożliwić * rejestrowanie tylko dla moich modułów bez definiowania rejestratora za moduł? Innymi słowy, czy istnieje sposób na udostępnianie "ustawień rejestratora", tak więc zamiast konieczności definiowania sekcji rejestratora dla każdego rejestratora istnieje sposób na domyślne ustawienia?

Coś jak:

[logger_shared_settings] 
    loggers = logger_A,logger_B,logger_C,logger_D 
    level=DEBUG 

2) lub w jaki sposób mogę odfiltrować rejestrowanie pakiet qpid pośrednictwem pliku konfiguracyjnego?

Oto plik log.conf:

[loggers] 
keys=root 

[handlers] 
keys=consoleHandler,fileHandler,nullHandler 

[formatters] 
keys=simpleFormatter 

[logger_root] 
level=DEBUG 
handlers=consoleHandler,fileHandler 

[handler_consoleHandler] 
class=StreamHandler 
level=DEBUG 
formatter=simpleFormatter 
args=(sys.stdout,) 

[handler_fileHandler] 
class=logging.handlers.RotatingFileHandler 
level=DEBUG 
formatter=simpleFormatter 
args=('out.log',) 

Tu właśnie starałem się unikać:

[loggers] 
keys=root, a, b, c, d 

[handlers] 
keys=consoleHandler,fileHandler,nullHandler 

[formatters] 
keys=simpleFormatter 

[logger_root] 
level=ERROR 
handlers=nullHandler 


[logger_a] 
level=DEBUG 
handlers=consoleHandler,fileHandler 


[logger_b] 
level=DEBUG 
handlers=consoleHandler,fileHandler 

[logger_c] 
level=DEBUG 
handlers=consoleHandler,fileHandler 

Odpowiedz

3

Z python2.7 można ustawić NullHandler do qpid rejestratora:

[logger_qpid] 
level=NOTSET 
handlers=nullHandler 
qualname=qpid 
propagate=0 
+0

To działa, jw czy wiesz, jak zrobić wspólny zestaw Tings? – Nix

+0

Hmmm ... co oznacza "ustawienia wspólne"? – oxyum

+0

Trochę jak root logger, ale inna sekcja, którą mógłbym zastosować moduły w mojej aplikacji. – Nix

Powiązane problemy