日志输出流较佳实践[较佳实践]

总体实践

#!/bin/python3
# coding: utf-8

import sys
import logging

file_handler = logging.FileHandler(filename="./xxx.log")
stdout_handler = logging.StreamHandler(sys.stdout)
handlers = [file_handler, stdout_handler]


logging.basicConfig(
    level=logging.INFO,
    # 取消filename注释则会打印日志到log文件, filename 优先级大于stream
    # filename="./xxx.log", filemode="w+",
    # stream=sys.stdout,
    handlers=handlers,
    format=("%(asctime)s.%(msecs)03d %(process)d:%(thread)d "
            "%(levelname)s %(name)s:%(lineno)d %(message)s"))
LOG = logging.getLogger(__name__)

详细解释

使日志输出到日志文件,print输出到控制台

logging.basicConfig(
    level=logging.INFO,
    filename="./xxx.log", filemode="w+",
    format=("%(asctime)s.%(msecs)03d %(process)d:%(thread)d "
            "%(levelname)s %(name)s:%(lineno)d %(message)s"))
LOG = logging.getLogger(__name__)

使日志输出到控制台

logging.basicConfig(
    level=logging.INFO,
    # 取消filename注释则会打印日志到log文件, filename 优先级大于stream
    # filename="./xxx.log", filemode="w+",
    stream=sys.stdout,
    format=("%(asctime)s.%(msecs)03d %(process)d:%(thread)d "
            "%(levelname)s %(name)s:%(lineno)d %(message)s"))
LOG = logging.getLogger(__name__)

控制日志输出到多个流

file_handler = logging.FileHandler(filename="./xxx.log")
stdout_handler = logging.StreamHandler(sys.stdout)
# 这里可以控制是多个流还是单个流
handlers = [file_handler, stdout_handler]

logging.basicConfig(
    level=logging.INFO,
    handlers=handlers,
    format=("%(asctime)s.%(msecs)03d %(process)d:%(thread)d "
            "%(levelname)s %(name)s:%(lineno)d %(message)s"))
LOG = logging.getLogger(__name__)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值