Nix*_*Nix 4 google-app-engine python-2.7
我遇到的情况是我有一个调用logging.debug(xxx)的包.我想通过此包禁用所有日志记录语句.有没有办法通过配置来做到这一点?
例如,我运行的每个查询都在dev服务器的控制台中打印出来:
DEBUG:root:SELECT实体.path,Entities.entity FROM"dev~xxxx !! Entities"AS实体INNER JOIN"dev~xxxx !! EntitiesByProperty"AS ebp_0 ON实体.path = ebp_0.路径 INNER JOIN"dev~xxxx !! EntitiesByProperty"AS ebp_1 ON实体.path = ebp_1.路径 INNER JOIN"dev~xxxx !! EntitiesByProperty"AS ebp_2 ON实体.path = ebp_2.path WHERE ebp_0.kind =:1 AND ebp_0.name =:2 AND ebp_0.value =:3 AND ebp_1.kind =:4 AND ebp_1.name =:5 AND ebp_1.value =:6 AND ebp_2.kind =:7 AND ebp_2.name =:8 AND ebp_2.value =:9 ORDER BY实体.路径 ASC
所以我知道如何通过修改sdk源来禁用它,基本上注释掉日志语句 __StarSchemaQueryPlan
logging.debug(query)
Run Code Online (Sandbox Code Playgroud)
有没有办法在不触及SDK代码的情况下禁用日志记录?我们目前没有定义任何loggingConfigurations,并且正在使用basicConfiguror.
最后的解决方案谢谢@lucemia:
class Filter(object):
def filter(self, record):
if record.funcName=='__StarSchemaQueryPlan' and record.module=='datastore_sqlite_stub':
return 0
else:
return 1
Run Code Online (Sandbox Code Playgroud)
您可以尝试修改日志级别.
由于该模块使用默认记录器.以下代码将禁用所有级别小于严重级别的日志.
import logging
logger = logging.getLogger() # get the default logger
logger.setLevel(50) # set the skip all log which is smaller than critical (50)
Run Code Online (Sandbox Code Playgroud)
import logging
def main():
logging.error("test")
logging.critical('c')
Run Code Online (Sandbox Code Playgroud)
import a_lib
import logging
logger = logging.getLogger()
logger.setLevel(50)
a_lib.main()
Run Code Online (Sandbox Code Playgroud)
> python a_test.py
CRITICAL:root:c
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用过滤器
import logging
# define a new filter
class Filter():
def filter(self, record):
# extract property of record such as record.funcName, record.module
# http://docs.python.org/2/library/logging.html#logrecord-attributes
if record.module == "a_lib":
# if the record is from a module you don't want to log
return 0
else:
# for record you want to log
return 1
# apply this filter
filter = Filter()
logger= logging.getLogger()
logger.addFilter(filter)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |