在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. parquet列式文件实战(未完,待续)

    parquet列式文件实战 parquet code demo http://www.programcreek.com/java-api-examples/index.php?source_dir=h ...

  2. 关于Redis处理高并发

    Redis的高并发和快速原因 1.Redis是基于内存的,内存的读写速度非常快: 2.Redis是单线程的,省去了很多上下文切换线程的时间: 3.Redis使用多路复用技术,可以处理并发的连接.非阻塞 ...

  3. 【Mac】【问题】

    [一]export: `PATH;': not a valid identifier 可能是环境变量配的有问题 一般是~/.bash_profile 多了空格或是多了$符号之类的

  4. svn hotcopy backup

    ================== 备份 1/2 ==================svnbackup.bat@echo off@rem Subversion Server 的安装目录set SV ...

  5. python之做一个简易的翻译器(二)

    把写好的python程序转换为windows系统下可以运行的exe文件 使用pyinstaller命令来进行转换 1.首先安装pyinstaller 可以在pycharm中安装,也可以直接使用pip命 ...

  6. [Shiro] tutorial 1 :SecurityManager and Subject

    SecurityManager是Shiro的绝对核心,不同于java.lang.SecurityManager,每个应用程序都要有一个SecurityManager. 所以我们第一件事就是配置一个Se ...

  7. idea在本地调试,spark创建hiveContext的时候报错

    spark版本:1.6.1 scala版本:2.10 问题呢场景: 在idea调试本地程序的时候创建hiveContext报错,上午的时候是没有这个问题的,下午在项目中写了一个小deamon,出现了而 ...

  8. docker使用笔记

    项目部署时用到了docker,以下分享了我在实践中使用的指令,和对docker一些个人的理解(※和字体加重部分) 本文选择使用网易的镜像源:https://c.163.com/hub#/m/home/ ...

  9. pip安装软件或模块时提示cannot import name 'main'

    旧的pip文件内容如下: from pip import main if __name__ == '__main__': sys.exit(main()) 修改后的文件内容: from pip imp ...

  10. label 的for属性总结

    一.使用介绍 1. 定义:for属性规定label与哪个表单元素绑定. <label>是专门为<input>元素服务的,为其定义标记. label 和表单控件绑定方式有两种: ...