在logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:

filename,filemode,datefmt,format,level,stream(未介绍)

import logging
logging.basicConfig(filename='日志.log', filemode='w',datefmt='%m/%d/%Y %I:%M:%S %p',
format='%(levelname)s:%(message)s--%(asctime)s',
level=logging.INFO)

logging模块    logging教程

logging用于记录(track)软件运行过程中发生的事件,事件具有开发者可赋予它的重要程度(等级importance/level/severity)

logging函数(也即等级)包含:debug、 info、warning、error、critical (level升序,对应的level即大写)。默认等级为WARNING,即只有日志级别高于等于WARNING的events才会被tracked。想要控制logging的等级,则需通过   logging.basicConfig(level=logging.DEBUG)  配置。能对被tracked的events进行一些操作处理,如打印到控制台或写到磁盘(日志)。

import logging
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

输出:默认情况下只有日志级别高于等于WARNING的events才会打印出来

WARNING:root:warning message
ERROR:root:error message
CRITICAL:root:critical message

logging to file

将logging events记录输出到文件,在basicConfig中指定文件路径filename即可:(重复,则logging会追加到log文件)

logging.basicConfig(filename='日志.log',level=logging.DEBUG)

若想要不把新的logging追加记录到原来的log文件,可通过filemode指定文件方式,filemode = 'w',则是更新log文件:(之前的log会丢失)

logging.basicConfig(filename='日志.log',filemode='w',level=logging.DEBUG)

多模块logging
在多模块时管理log,可以用以下方式简单的实现:

import logging
import mymodule #自己写的模块 logging.basicConfig(filename='日志.log',level=logging.INFO)
logging.info('start')
mymodule.xxxx # 模块中需要记录log的代码
logging.info('end')

Logging 变量数据 

使用格式化字符串(%占位),并将需要的变量作为logging函数的参数来实现将变量数据输出到 log。 其他做法: str.format() and string.Template

import logging
logging.basicConfig(filename='日志.log', filemode='w', level=logging.INFO)
logging.info('start')
logging.warning('%s before you %s', 'Look', 'leap!')
logging.info('end')

输出: INFO:root:start WARNING:root:Look before you leap! INFO:root:end

 Logging格式

通过format指定格式即可: (message:即events的描述,包括变量)

import logging
logging.basicConfig(filename='日志.log', filemode='w',format='%(levelname)s:%(message)s',
level=logging.INFO)
logging.info('start')
logging.warning('%s before you %s', 'Look', 'leap!')
logging.info('end')

输出: INFO:start WARNING:Look before you leap! INFO:end  (root不见啦)

 在message中显示时间(日期)

在格式化字符串中加入‘%(asctime)s’ 即可,可用datefmt 规定时间的格式

import logging
logging.basicConfig(filename='日志.log', filemode='w',datefmt='%m/%d/%Y %I:%M:%S %p',
format='%(levelname)s:%(message)s--%(asctime)s',
level=logging.INFO)
logging.info('start')
logging.warning('%s before you %s', 'Look', 'leap!')
logging.info('end')

输出:INFO:start--11/06/2017 09:20:23 PM WARNING:Look before you leap!--11/06/2017 09:20:23 PM INFO:end--11/06/2017 09:20:23 PM

参考:

https://docs.python.org/3/howto/logging.html#logging-basic-tutorial

http://blog.csdn.net/zyz511919766/article/details/25136485/

logging日志——Basic Logging Tutorial的更多相关文章

  1. form,ajax注册,logging日志使用

    一.form表单类型提交注册信息 二.ajax版本提交注册信息 <!DOCTYPE html> <html lang="en"> <head> ...

  2. day19——包、logging日志

    day19 包 文件夹下具有______init______.py文件就是一个包 方法 import 包.包.包 from 包.包.包 import 模块 需要在______init______.py ...

  3. Python模块04/包/logging日志

    Python模块04/包/logging日志 目录 Python模块04/包/logging日志 内容大纲 1.包 2.logging日志 3.今日总结 内容大纲 1.包 2.logging日志 1. ...

  4. Python日志模块logging用法

    1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL. DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 ...

  5. 管理 python logging 日志使用

    1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL. DEBUG:详细的信息,通常只出现在诊断问题上INFO:确认一切按预期运行WA ...

  6. python logging 日志使用

    https://docs.python.org/3/library/logging.html1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRI ...

  7. Oracle补全日志(Supplemental logging)

    Oracle补全日志(Supplemental logging)特性因其作用的不同可分为以下几种:最小(Minimal),支持所有字段(all),支持主键(primary key),支持唯一键(uni ...

  8. logging 日志模块学习

    logging 日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪,所以还是灰常重要滴,下面我就来从入门到放弃的系统学习一下日志既可以在屏幕上显示,又可以在文件中体现. ...

  9. python日志模块---logging

    1.将日志打印到屏幕 import logging logging.debug('This is debug message---by liu-ke') logging.info('This is i ...

随机推荐

  1. 《 动态规划_ 入门_最大连续子序列_HDU_1003 》

    题目描述: Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  2. Linux下SSH远程连接断开后让程序继续运行解决办法

    一.screen安装 yum  install screen   #CentOS安装 sudo apt-get install screen #ubuntu安装 二.screen常用命令 screen ...

  3. 2019 年 Spread.NET 产品路线图(Roadmap)

    前言 | 问题背景 2018年结束了,12月是Spread.NET的重要月份.我们发布了Spread.NET 12,我们期待着 2019 年令人兴奋的新年,这是Windows Forms开发人员有史以 ...

  4. put与putIfAbsent区别

    put与putIfAbsent区别: put在放入数据时,如果放入数据的key已经存在与Map中,最后放入的数据会覆盖之前存在的数据, 而putIfAbsent在放入数据时,如果存在重复的key,那么 ...

  5. js 克隆数组

    js克隆数组 1.遍历push 2.slice const a1 = [1, 2];const a2 = a1.slice() 3.concat() const a2 = a1.concat(); a ...

  6. docker笔记(2)-----容器连接

    2019-01-12  13:57:36 Dockerfile基本结构: 基础镜像内容:FROM指明base image 维护者信息: 镜像操作指令:RUN指令,每运行一条RUN指令,镜像添加新的一层 ...

  7. stylus入门学习笔记

    title: stylus入门学习笔记 date: 2018-09-06 17:35:28 tags: [stylus] description: 学习到 vue, 有人推荐使用 stylus 这个 ...

  8. Jenkins部署的时候报错

    拿了一个最简单的,好不容易maven开始跑了 最终给我报错了 [INFO] -------------------------------------------------------------- ...

  9. POJ 1061 青蛙的约会(拓展欧几里得)

    #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #i ...

  10. 压测过程中使用nmon对服务器资源的监控

    1.nmon工具的下载和安装: 官网:http://nmon.sourceforge.net/pmwiki.php 下载完成后进行解压,更改权限:chmod 777 2.查看linux系统的版本,再使 ...