1
我試圖做簡單的文件日誌記錄配置的金字塔,與Python 2.7.2和1.2.3金字塔問題與記錄設置的自舉金字塔
它不工作我沒有料到。它看起來像即使我引導到金字塔,它不會加載正確的日誌。下面test.py中的具體問題:
test.py
from pyramid.paster import bootstrap
env = bootstrap('../test.ini')
import logging
logging.basicConfig() #this apparently makes no difference
log=logging.getLogger('root') #same thing if I do getLogger(__name__) - it doesn't find the proj one.
print log.handlers
>>> []
這是奇怪!沒有處理程序?顯然這不是我想到的日誌。
print log
>>> logging.Logger
不應該是RootLogger嗎?
print log.parent
>>> [<logging.RootLogger>]
因此,getLogger('root')的父級是真正的RootLogger嗎?讓我們看看它的處理程序是什麼:
print log.parent.handlers
>>> [<logging.StreamHandler>]
這很奇怪。
test.ini:自舉時
[app:proj]
use = egg:proj
sqlalchemy.url = mysql+mysqldb://proj_staging:[email protected]/proj_staging?charset=utf8
# This apparently helps avoid mysql gone away errors
sqlalchemy.pool_recycle = 3600
[pipeline:main]
pipeline = proj
[loggers]
keys = root, proj
[handlers]
keys = console, file
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = file
qualname=root
[logger_proj]
level = DEBUG
handlers =
qualname = proj
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[handler_file]
class = FileHandler
args=('../logs/proj.log','a')
formatter = generic
level = INFO
[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
啊,這是偉大的。我剛纔認爲它會加載所有其他東西的日誌記錄。 – fastmultiplication