# 有配置文件 局部如下
DEFAULT_LOGGING_CONFIGS = {
...
'mongo':{
# 'level': 'INFO',
'class': 'log4mongo.handlers.MongoHandler',# BufferedMongoHandler,buffer_size=100, buffer_periodical_flush_timing=10.0,buffer_early_flush_level=logging.CRITICAL
'host': AppConfig.MONGODB_BASE.get('host'),
'port' : AppConfig.MONGODB_BASE.get('port'),
'database_name' : AppConfig.LOG_DATABASE.get('database_name'),
'collection': AppConfig.LOG_DATABASE.get('collection'),
"username":AppConfig.MONGODB_BASE.get('username'),
"password":AppConfig.MONGODB_BASE.get('password'),
"capped":True,
"capped_max":1000000,
"capped_size":1024*1024*1024,
# "formatter": MyMongoFormatter()
}
...
}
# logger 初始化如下
logging.config.dictConfig(DEFAULT_LOGGING_CONFIGS)
logger = logging.getLogger('mongodb')
#log4mongo 源码中初始化 Handler 局部如下
class MongoHandler(logging.Handler):
def __init__(self, level=logging.NOTSET, host='localhost', ):
logging.Handler.__init__(self, level)
self.host = host
self.formatter = formatter or MongoFormatter() # 初始化时候传入一个实例不成功
- 我应该如何设置 DEFAULT_LOGGING_CONFIGS 中的 formatter 使 log4mongo 能支持
- 我尝试传入一个继承 log4mong.MongoFormatter 但传入 formatter 没有成功,我想应该使错误的,但我应该如何正常呢