How to create a debug log in a different directory apart from current directory in python? -


i tried below code create debug log based on write permission in directory. if directory has write permission create log locally else create log in home directory.

if len(sys.argv) > 1:     in range (1,len(sys.argv)):         if (sys.argv[i] == "debug"):              if os.access("./", os.w_ok) not true:                 logging.basicconfig(filename="$home/post_debug.log", filemode='a')             else:                 logging.basicconfig(filename="post_debug.log", filemode='a')              level_name = sys.argv[i]             level = levels.get(level_name, logging.notset)             logging.basicconfig(level=level)             level_set = 1         elif level_set != 1:             level = logging.warning else:     level = logging.warning  log = logging.getlogger('post') log.setlevel(level) 

but code goes loop 1 i.e. without write permission , checks log file in current directory [/disks/desperado/hang_logs/home.list/$home/post_debug.log] instead of home directory given below,

traceback (most recent call last):   file "/disks/scripts/pp/post.py", line 86, in <module>     logging.basicconfig(filename="$home/post_debug.log", filemode='a')   file "/usr/pkgs/python/2.7/lib/python2.7/logging/__init__.py", line 1500, in basicconfig     hdlr = filehandler(filename, mode)   file "/usr/pkgs/python/2.7/lib/python2.7/logging/__init__.py", line 889, in __init__     streamhandler.__init__(self, self._open())   file "/usr/pkgs/python/2.7/lib/python2.7/logging/__init__.py", line 908, in _open     stream = open(self.basefilename, self.mode) ioerror: [errno 2] no such file or directory: '/disks/desperado/hang_logs/home.list/$home/post_debug.log' 

am missing something? share in inputs!

you missing use of expandvars expand $home environment variable properly:

from os.path import expandvars  # ...  logging.basicconfig(filename=expandvars("$home/post_debug.log"), filemode='a') 

also, take @ argparse, useful :)


Comments

Popular posts from this blog

neo4j - finding mutual friends in a cypher statement starting with three or more persons -

php - How to remove letter in front of the word laravel -

minify - Minimizing css files -