如何在Python中获取logging.FileHandler的文件名?

16
一个 logging.FileHandler 是通过文件名构建的,那么有没有办法从 logging.FileHandler 对象中获取文件名呢?
我尝试过 dir(logging.FileHandler) 但是没有看到任何可能的解决方案。

http://python.6.n6.nabble.com/Get-file-name-from-file-handle-td1540681.html - Dan
2个回答

21
>>> import logging
>>> fh = logging.FileHandler('/Users/defuz/test.txt')
>>> fh.baseFilename
'/Users/defuz/test.txt'
>>> fh.stream.name
'/Users/defuz/test.txt'

6
请查找dir(logging.FileHandler)
 ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', 
  '__getattribute__', '__hash__', '__init__', '__module__', '__new__', 
  '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', 
  '__str__', '__subclasshook__', '__weakref__', '_name', '_open', 'acquire', 
  'addFilter', 'baseFilename', 'close', 'createLock', 'emit', 'encoding', 'filter', 
  'filters', 'flush', 'format', 'formatter', 'get_name', 'handle', 'handleError', 
  'level', 'lock', 'mode', 'name', 'release', 'removeFilter', 'setFormatter', 'setLevel', 
  'set_name', 'stream']

您可以使用选项 obj.baseFilename 获取文件名。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接