第一步,创建一个logger;

  第二步,创建一个handler,用于写入日志文件;

  第三步,再创建一个handler,用于输出到控制台;

  第四步,定义handler的输出格式;

  第五步,将logger添加到handler里面。这段代码里面提到了好多概念,包括:Logger,Handler,Formatter。

#第一步 创建一个logger
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO) #log等级开关 #第二步 创建一个handler 用来写日志文件
fh = logging.FileHandler("test.log",encoding="utf-8")
fh.setLevel(logging.DEBUG) #输出到file 的log等级开关 #第三步 再创建一个handler 用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING) #输出到console的log等级开关 #第四步 定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter) #第五步 将logger添加到handler里面
logger.addHandler(fh)
logger.addHandler(ch) #日志
logger.debug('logger debug message') # 计算或者工作的细节
logger.info('logger info message') # 记录一些用户的增删改查的操作
logger.warning('logger warning message') # 警告操作
logger.error('logger error message') # 错误操作
logger.critical('logger critical message') # 批判的 直接导致程序出错退出的

格式的常用语法

%(name)s:Logger的名字,并非用户名,详细查看

%(levelno)s:数字形式的日志级别

%(levelname)s:文本形式的日志级别

%(pathname)s:调用日志输出函数的模块的完整路径名,可能没有

%(filename)s:调用日志输出函数的模块的文件名

%(module)s:调用日志输出函数的模块名

%(funcName)s:调用日志输出函数的函数名

%(lineno)d:调用日志输出函数的语句所在的代码行

%(created)f:当前时间,用UNIX标准的表示时间的浮 点数表示

%(relativeCreated)d:输出日志信息时的,自Logger创建以 来的毫秒数

%(asctime)s:字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒

%(thread)d:线程ID。可能没有

%(threadName)s:线程名。可能没有

%(process)d:进程ID。可能没有

%(message)s:用户输出的消息

详情网址  http://dwz.cn/yPC4tFWL

最新文章

  1. html标签学习
  2. 第三条:用私有构造器或者枚举类型强化Singleton属性
  3. Unity3d热更新全书-加载(一)从AssetBundle说起
  4. free命令
  5. Apahce的虚拟用户认证及server-status页
  6. UVALive 3027(并查集)
  7. linux select 与 阻塞( blocking ) 及非阻塞 (non blocking)实现io多路复用的示例
  8. hdu 确定比赛名次
  9. Javascript技巧实例精选(2)—文字水平方向上动态漂移
  10. Openfire3.9.1+jdk1.7导入到eclipse中
  11. linux常用命令(不断更新)
  12. JAVA面试精选【Java web部分一】
  13. 转载(windows下安装mysql)
  14. 在windows下MySQL-python的安装
  15. Spring 切面优先级
  16. Python3.x:pip命令安装第三方库,超时处理方案
  17. a+b_1
  18. Robot Framework Change chrome language
  19. HTTP状态码具体解释
  20. 解析CEPH: 存储引擎实现之一 filestore

热门文章

  1. SpringMVC 解析(三) Controller 注解
  2. tomcat安装笔记
  3. C++ 提高编程
  4. [LeetCode]13.罗马数字转整数(Java)
  5. 为什么使用Mybatis对JDBC进行包装探究
  6. MyBatis功能点二:从责任链设计模式的角度理解插件实现技术
  7. 内网流量操控---pingtunnel建立icmp隧道
  8. Java8新特性系列-默认方法
  9. Smartbi制作报表教程:热销车型分类排名总表
  10. C语言中如何输出汉字;如何用C语言汉字编码输出汉字(超全版)