使用Python 3.7添加日志级别

时间:2019-03-06 22:01:20

标签: logging python-3.7

我一直在尝试通过遵循以下两个出色的帖子来添加自定义日志级别:

How to add a custom loglevel to Python's logging facility

Python3 add logging level

在我的顶层__init__.py中,我输入:

    import logging

    logging.VERBOSE = 15 
    logging.addLevelName(logging.VERBOSE, "VERBOSE")

    def verbose(self, message, *args, **kws):
        if self.isEnabledFor(logging.VERBOSE):
            # Yes, logger takes its '*args' as 'args'.
            self._log(logging.VERBOSE, message, args, **kws) 

    setattr(logging, 'verbose', verbose)
    setattr(logging.Logger, 'verbose',verbose)
#also tried
# logging.Logger.verbose=verbose
# logging.verbose=verbose

logging.getLogger(__name__).addHandler(logging.NullHandler())

在其他各种类和子模块中,我希望可以:

import logging
.
.
.
logging.verbose("Someone sent us up the bomb")

但是,所有吸引我的是:

TypeError: verbose() missing 1 required positional argument: 'message'

如果我切换到:

logging.log(logging.VERBOSE, "Intent Returned: " + intent_name)

我也没有抛出异常,但是我也没有输出任何消息。

1 个答案:

答案 0 :(得分:1)

自我是阻止它工作的原因,因为似乎您不是在一个类中进行操作。

如果您使用的是Basic Config,则可以在#!/bin/bash apt-get update apt-get -qq -y install libpq-dev apt-get -qq -y install nodejs apt-get -qq -y install libpcap-dev bundle check || bundle install if [ -f tmp/pids/server.pid ]; then rm tmp/pids/server.pid fi bundle exec rails s -b 0.0.0.0 -p 3000 __init__.py中以这种方式添加自定义级别:

__main__.py

如果您对所有其他文件都使用标准记录器,则这也适用于其他文件。