简体   繁体   中英

Python, choose logging files' directory

I am using the Python logging library and want to choose the folder where the log files will be written.

For the moment, I made an instance of TimedRotatingFileHandler with the entry parameter filename="myLogFile.log" . This way myLogFile.log is created on the same folder than my python script. I want to create it into another folder.

How could I create myLogFile.log into , let's say, the Desktop folder?

Thanks, Matias

简单地给出一个不同的文件名,如filename=r"C:\\User\\Matias\\Desktop\\myLogFile.log

Let's say logs directory is in the parent directory of the current directory then you can use below 2 lines, to provide that location irrespective of the underlying os .

import os
log_dir = os.path.join(os.path.normpath(os.getcwd() + os.sep + os.pardir), 'logs')
log_fname = os.path.join(log_dir, 'log_file_name.log')

Specify an absolute path when creating instance TimedRotatingFileHandler:

from logging.handlers import TimedRotatingFileHandler
h = TimedRotatingFileHandler('/home/user/Desktop/myLogFile.log')

or

from logging.handlers import TimedRotatingFileHandler
h = TimedRotatingFileHandler('C:\\Users\\user\\Desktop\\myLogFile.log')

This is how I soleved it in linux.

# log_cfg.yaml
handlers:
    file_handlers:
        ...
        filename = log//error.log

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM