2012-11-30 7 views
19

Mam plik konfiguracyjny logowania do logowania do konsoli i plik o różnych formatach i poziomach. W moim skrypcie pythona mogę załadować tę konfigurację i zasadniczo konsola i plik wyjściowy są w porządku.Jak korzystać z rejestrowania za pomocą pliku Pythona i konfigurowania pliku pliku dziennika

Ustawiam nazwę pliku w pliku konfiguracyjnym, jak pokazano poniżej.

Czy można ustawić tę nazwę pliku w samym skrypcie pythona?

kod Python:

# set up logging 
logging.config.fileConfig(loginipath) 
logger = logging.getLogger('sLogger') 

# log something 
logger.debug('debug message') 
logger.info('info message') 
logger.warn('warn message') 
logger.error('error message') 
logger.critical('critical message') 

rejestrowanie plik konfiguracyjny:

[loggers] 
keys=root,sLogger 

[handlers] 
keys=consoleHandler,fileHandler 

[formatters] 
keys=fileFormatter,consoleFormatter 

[logger_root] 
level=DEBUG 
handlers=consoleHandler 

[logger_sLogger] 
level=DEBUG 
handlers=consoleHandler,fileHandler 
qualname=sLogger 
propagate=0 

[handler_consoleHandler] 
class=StreamHandler 
level=WARNING 
formatter=consoleFormatter 
args=(sys.stdout,) 

[handler_fileHandler] 
class=FileHandler 
level=DEBUG 
formatter=fileFormatter 
args=('logfile.log',) 

[formatter_fileFormatter] 
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s 
datefmt= 

[formatter_consoleFormatter] 
format=%(levelname)s - %(message)s 
datefmt= 

Odpowiedz

0

Spróbuj zadzwonić logging.config.dictConfig() po fileConfig() i po prostu ustawiając nazwę pliku.

+0

mógłbyś podać przykład jak ustawić nazwę pliku. Dzięki. –

29

Zmień swój punkt handler_fileHandler tak:

[handler_fileHandler] 
class=FileHandler 
level=DEBUG 
formatter=fileFormatter 
args=('%(logfilename)s',) 

a następnie dodać defaults argument wywołania fileConfig

logging.fileConfig(loginipath, defaults={'logfilename': '/var/log/mylog.log'}) 
+2

Wiem, że jest stary, ale czy możliwe jest określenie nazwy pliku w nazwie pliku i ścieżce, a nie w skrypcie, który go wywołuje? – frei

Powiązane problemy