首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志记录后查看空日志文件

日志记录后查看空日志文件
EN

Stack Overflow用户
提问于 2018-01-17 15:06:46
回答 1查看 1.8K关注 0票数 0

我想在Python3.6中创建一个日志文件&为不同的操作节省时间。

所以我用了这个代码:

代码语言:javascript
复制
def create_logger(logFile, fileLogLevel, streamLogLevel):
    # create logger for "Sample App"
    logger = logging.getLogger('Seller Explosion')
    logger.setLevel(logging.INFO)

    # create file handler which logs WARNING messages
    fh = logging.FileHandler(logFile, mode='w')
    fh.setLevel(fileLogLevel)

    # create console handler with a higher log level
    ch = logging.StreamHandler(stream=sys.stdout)
    ch.setLevel(streamLogLevel)

    # create formatter and add it to the handlers
    formatter = logging.Formatter('[%(asctime)s] %(levelname)8s --- %(message)s ' +
                                  '(%(filename)s:%(lineno)s)', datefmt='%Y-%m-%d %H:%M:%S')
    fh.setFormatter(formatter)
    ch.setFormatter(formatter)

    # add the handlers to the logger
    logger.addHandler(ch)
    logger.addHandler(fh)

    return logger

在执行代码时,我使用以下命令

代码语言:javascript
复制
logger = create_logger('<path to my folder>/TimeLog.log', logging.WARNING, logging.WARNING)
startTime=time.ctime()
logTime="Start Time for uploading: "+startTime
logger.info(logTime)

但是在我的路径中,我看到TimeLog.log是一个0字节大小的空白文件。你能告诉我我犯了什么错误吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-17 15:15:15

将处理程序设置为在WARNING级别上进行筛选:

代码语言:javascript
复制
logger = create_logger(..., logging.WARNING, logging.WARNING)

代码语言:javascript
复制
fh.setLevel(fileLogLevel)
# ...
ch.setLevel(streamLogLevel)

然后记录一个INFO级别的消息。INFO是来自WARNING的一个较低、不太严重的级别,因此由处理程序过滤掉。

您需要在WARNING级别或更高级别(因此WARNINGERRORCRITICAL,或数值30及以上)登录,或者配置处理程序以处理较低级别(例如INFODEBUGNOTSET,或者数值为20或更低)。

例如,logger.warn(logTime)会将数据添加到日志文件中。如果您使用logging.INFO作为create_logger()的第二个参数,那么logger.info()调用也会产生同样的效果。

来自 method documentation

将此处理程序的阈值设置为“级别”。低于级别的日志记录消息将被忽略。创建处理程序时,级别设置为NOTSET (这将导致处理所有消息。

粗体强调我的;也见 section的排序和数值。

注意,在日志消息中创建带有时间戳的日志消息是相当多余的,因为日志格式已经包含一个时间戳:

代码语言:javascript
复制
>>> startTime = time.ctime()
>>> logTime = "Start Time for uploading: " + startTime
>>> logger.warn(logTime)
[2018-01-17 16:36:20]  WARNING --- Start Time for uploading: Wed Jan 17 16:36:20 2018 (<stdin>:1)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48304157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档