Objective Need to change logging file path under '/users/logs' directory when everytime my python tests executes on Windows machine
Steps I have logging.conf file with settings as below. This configuration file exists under path '{ProjectRoot}/logs'
[loggers]
keys=root,simpleExample
[handlers]
keys=consoleHandler,fileHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=INFO
handlers=consoleHandler,fileHandler
[logger_simpleExample]
level=DEBUG
handlers=consoleHandler,fileHandler
qualname=simpleExample
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=('%(logfilename)s', 'a', 'utf8')
[formatter_simpleFormatter]
format= %(levelname)s:%(asctime)s:%(module)s:%(funcName)s:%(lineno)d:%(message)s
And I have initialized logger as below
projectRoot = Path(__file__).parent
loggingConfigFile = f'{projectRoot}\\logs\\logging.conf'
logging.config.fileConfig(loggingConfigFile, defaults={'logfilename': "C:\\Users\\user1\logs\\bp1.log"}, disable_existing_loggers=False)
When I execute this I get error as
File "", line 1 ('C:\Users\innabal1\logs\bp1.log', 'a', 'utf8') ^ SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
When I just give only the file name alone it works fine. But logs are created under the current execution directory.
logging.config.fileConfig(loggingConfigFile, defaults={'logfilename': "bp1.log"}, disable_existing_loggers=False)