logging addHandler(console)

import logging

# set up logging to file - see previous section for more details
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    datefmt='%m-%d %H:%M',
                    filename='/temp/myapp.log',
                    filemode='w')
# define a Handler which writes INFO messages or higher to the sys.stderr
# 
console = logging.StreamHandler()
console.setLevel(logging.INFO)
# set a format which is simpler for console use

#设置格式
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')

# tell the handler to use this format
#告诉handler使用这个格式
console.setFormatter(formatter)

# add the handler to the root logger
#为root logger添加handler
logging.getLogger('').addHandler(console)

# Now, we can log to the root logger, or any other logger. First the root...
#默认使用的是root logger
logging.info('Jackdaws love my big sphinx of quartz.')

# Now, define a couple of other loggers which might represent areas in your
# application:
logger1 = logging.getLogger('myapp.area1')
logger2 = logging.getLogger('myapp.area2')

logger1.debug('Quick zephyrs blow, vexing daft Jim.')
logger1.info('How quickly daft jumping zebras vex.')
logger2.warning('Jail zesty vixen who grabbed pay from quack.')
logger2.error('The five boxing wizards jump quickly.')


Output:
----------------------------------------------------------------------
root        : INFO     Jackdaws love my big sphinx of quartz.
myapp.area1 : INFO     How quickly daft jumping zebras vex.
myapp.area2 : WARNING  Jail zesty vixen who grabbed pay from quack.
myapp.area2 : ERROR    The five boxing wizards jump quickly.
----------------------------------------------------------------------

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • tf.contrib.layers.batch_norm

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    于小勇
  • TensorFlow - TF-Slim 使用总览

    虽然这里是采用 TF-Slim 处理图像分类问题,还需要安装 TF-Slim 图像模型库 tensorflow/models/research/slim. 假设...

    于小勇
  • slim.arg_scope()

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    于小勇
  • Jmeter 常用函数(13)- 详解 __machineIP

    https://www.cnblogs.com/poloyy/p/13291704.html

    小菠萝测试笔记
  • 数据结构之数组

    一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变...

    xiangzhihong
  • Angular企业级开发(4)-ngResource和REST介绍

    一、RESTful介绍 ? RESTful维基百科 REST(表征性状态传输,Representational State Transfer)是Roy Fie...

    八哥
  • linux 定时休眠

    最近公司规定晚上走人后必须关闭电脑,但是像我们这样的人,经常会忘记了关闭电脑,而且关闭电脑之后再恢复工作环境也是件挺麻烦的事情,无奈之下只能折腾一下,让linu...

    用户1257393
  • JavaScript实现3秒后页面自动跳

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or...

    py3study
  • 关关的刷题日记96 – Leetcode 120. Triangle

    关关的刷题日记96 – Leetcode 120. Triangle 题目 Given a triangle, find the minimum path su...

    WZEARW
  • java学习笔记(基础篇)—==与equals的区别

    ​ 用于基本数据类型相互比较. 比较二者的值是否相等 ​ 用于引用数据类型相互比较. 比较二者地址是否相等 ​ 不能用于基本数据类型与引用型比较

    chlinlearn

扫码关注云+社区

领取腾讯云代金券