Oto mój scenariusz: chcę zalogować aktywność mojego_module. Należy to zrobić, w zależności od metody wykonanej (powiedzmy INPUT i OUTPUT), do dwóch różnych plików.Python rejestrowanie wielu plików przy użyciu tego samego rejestratora
Mam dwa menedżery, każdy z nich wskazuje inny plik (my_in_.log & my_out_.log) z tym samym poziomem dziennika. Chciałbym wiedzieć, czy mogę użyć tego samego rejestratora, aby to osiągnąć, lub muszę zdefiniować dwa rejestratory. Moja config jest:
[loggers]
keys=root, my_log
[handlers]
keys=my_in_hand, my_out_hand
[formatters]
keys=generic_form
...
[logger_my_log]
level=NOTSET
handlers=my_in_hand, my_out_hand
qualname=ws_log
[handler_my_in_hand]
class=handlers.TimeRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('my_in_.log', 'h', 1, 0, None, False, True)
[handler_my_out_hand]
class=handlers.TimeRotatingFileHandler
level=NOTSET
formatter=generic_form
args=('my_out_.log', 'h', 1, 0, None, False, True)
Czy muszę zdefiniować rejestratora za handler/przeznaczenia? (ponieważ chcę rejestrować różne informacje w różnych plikach) Czy istnieje sposób wskazania programowi rejestrującemu, który program obsługi zrobi to? Mam na myśli, że mam dwa programy obsługi dla jednego rejestratora, a następnie wybieram tylko jedną procedurę obsługi, aby zarejestrować jedną metodę.
Thx dużo!
Może nie jestem jasne: Nie chcę się zalogować na moje rekordy ** ** każdy dodany do obsługi rejestratora. Chcę tylko wybrać, który handler zarejestruje rekord, tj. Jeden program rejestrujący -> dwie procedury obsługi, ale wybierze cel, do którego zostanie przydzielony rekord. Ponownie użyje tego samego rejestratora z różnymi programami obsługi, ale niektóre rekordy będą rejestrowane przez jeden moduł obsługi , a niektóre z innymi ... Czy to możliwe, czy muszę zdefiniować inny rejestrator? WIELKIE DZIĘKI! :) –
@ AlbertoMegía Powinieneś zdefiniować własną metodę, która przyjmuje jako argument miejsce docelowe dziennika i używa wewnętrznie prawą obsługę wiadomości dziennika. – mike
Więc mam na myśli muszę dodać i usunąć program obsługi rejestratora, aby wybrać go w środowisku wykonawczym? To może nie być moja najlepsza opcja, ponieważ ten moduł jest moim frontalnym widokiem w usłudze sieciowej ... przy każdym żądaniu musiałbym zmienić obsługę ...: S –