1、打印到控制台

#-*- coding: UTF-8 -*-

importloggingdeflogFileTest():

logging.debug('This is debug')

logging.warning('This is warning message')

logging.info('This is info')

logFileTest()

运行结果

WARNING:root:This is warning message

PS : 只有 logging.warning() 能打印输出到控制台,因为默认设置的等级是 warning,等级低于warning的都不会打印出来

2、配置默认等级后,打印到控制台

#-*- coding: UTF-8 -*-

importloggingdeflogBasicConfig():

logging.basicConfig(level=logging.DEBUG)

logging.debug('This is debug')

logging.warning('This is warning message')

logging.info('This is info')

logBasicConfig()

运行结果

DEBUG:root:This isdebug

WARNING:root:Thisiswarning message

INFO:root:Thisis info

PS : 日志级别: debug < info < warning < error < critical

3、保存到日志文件中,通过 logging.basicConfig() 设置

#-*- coding: UTF-8 -*-

importloggingdefsaveToLogFile():

logging.basicConfig(

filename= 'saveMessage.log', #保存文件路径

filemode= 'a',#保存方式,有 w 和 a 模式,默认不写为追加 a 模式

format= '%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s' #日志格式)

logging.warning('This is warning')

saveToLogFile()

运行结果

2019-08-27 14:00:58,463 - D:\E_DISK\product\eclipse\logFileDemo\src\com\logFileDemo.py[line:24] - WARNING: This is warning

PS : 这是 saveMessage.log 文件中生成的日志信息

如果在 logging.basicConfig() 设置 filename 和 filemode,则只会保存 log 到文件,不会输出到控制台

4、实现info信息记录到文件,error信息记录文件并在屏幕上输出,且实现日志回滚

保存10个文件,每个文件大小为1024*1024

需要注意该函数在一个工程中只能调用一次,否则写入信息会增加,比如调用两次该函数后log.info('aaa')文件中会有两次

因此我写了一个log = LogConfig.log()其他类使用时,用该log就行,有点像单例模式

重复写入问题可以参考https://blog.csdn.net/huilan_same/article/details/51858817

importlogging.handlersimportosclassLogConfig:def __init__(self):pass

#DEBUG,INFO,NOTICE,WARNING,ERROR,CRITICAL,ALERT,EMERGENCY

#如果是一个大工程,建议只调用一次,调用位置为主入口处。

@staticmethoddef log(log_name='logs/log.log', log_flag=True,

max_bytes=1024 * 1024, backup_count=10):

path=os.path.split(log_name)[0]if not os.path.isdir(path) and path != '':

os.makedirs(path) # 目录不存在则创建

log_handler=logging.getLogger(log_name)iflog_flag:#write log above info 为True记录INFO以及以上等级的日志

log_handler.setLevel(logging.INFO)else:#write log above error 为False记录ERROR以及以上等级的日志

log_handler.setLevel(logging.ERROR)

stream_handler=logging.StreamHandler() # 控制台日志句柄,设置则可以打印到控制台#is or not show to cmd console

stream_handler.setLevel(logging.WARN) # 设置打印到控制台日志等级为WARN以及以上

log_handler.addHandler(stream_handler) # 添加控制台句柄

# 设置回滚日志句柄

rollback_handler=logging.handlers.RotatingFileHandler(log_name,

maxBytes=max_bytes,

backupCount=backup_count)

log_format=logging.Formatter('[%(asctime)s][%(levelname)s]%(message)s') # 设置日志格式,时间,等级,信息

rollback_handler.setFormatter(log_format)

rollback_handler.setLevel(logging.INFO) # 设置回滚日志记录INFO以及以上信息

log_handler.addHandler(rollback_handler) # 添加回滚日志句柄returnlog_handler # 返回句柄,以便于使用

log=LogConfig.log() # 类似单例模式,只使用一次,不然会出现日志叠加情况if __name__ == '__main__':

log.info('444')

log.error('555')

python log文件_Python logging基本使用相关推荐

  1. python log日志_python脚本攻略之log日志

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  2. python写日志文件_Python logging日志模块 配置文件方式

    在一些微服务或web服务中我们难免需要日志功能,用来记录一些用户的登录记录,操作记录,以及一些程序的崩溃定位,执行访问定位等等; Python内置 非常强大的日志模块 ==> logging 今 ...

  3. python log文件如何不写入syslog_python 自动化之路 logging日志模块

    logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方 http://blog.csdn.net/zyz51 ...

  4. python读取log文件_python文件读写(一)-txt, log, json, csv, xml文件

    1.概述在平时自动化测试工作中,经常会用python对一些文件进行读写操作.其中使用最多的文件格式,就是txt,  log,  json,  csv,  xml,  zip, tar, gz,  ra ...

  5. python log文件如何不写入syslog_Centos下python 对syslog重写进行日志记录

    在Linux 环境下,python自带一个syslog的模块可以进行日志记录.python可以利用logging模块来重写syslog,这样就可以自定义写入文件的文件名.如果不做配置则直接写入到/va ...

  6. python log日志_Python的log日志功能及设置方法

    引入:Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍 一.日志级别(从低到高): DEBUG :详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期 ...

  7. python打开文件_python如何学习

    1.Python 文件I/O 本章只讲述所有基本的 I/O 函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函 ...

  8. python遍历文件_python遍历目录文件脚本的示例

    例子 自己写的一个Python遍历文件脚本,对查到的文件进行特定的处理.没啥技术含量,但是也记录一下吧. 代码如下 复制代码 #!/usr/bin/python # -*- coding: utf-8 ...

  9. python提取文件_Python文件读取常用方法

    1. 关于读取文件 f.read() 读取文件中所有内容 f.readline() 读取第一行的内容 f.readlines() 读取文件里面所有内容,把每行的内容放到一个list里面 注:因为文件指 ...

最新文章

  1. Ubuntu 系统 Pycharm中无法使用中文输入法问题
  2. 报告 | 2019年全球数字化转型现状研究报告
  3. 数据库-null值和notnull操作
  4. JIT的Profile神器JITWatch
  5. 抑制java对修饰符的检查_Java 7对抑制异常的支持
  6. 移动端实现元素拖拽效果插件_基于自然流布局的可视化拖拽搭建平台设计方案...
  7. OC之protocol监听器的实现
  8. 写给小白的WordPress详细安装步骤
  9. 技术迭代快速。PyTorch 真的优于Tensorflow吗?
  10. 中小企业上云如何选择及操作
  11. java提高篇之理解java的三大特性——继承
  12. ORALCE 两表结构更新
  13. Python读取系统文件夹内所有文件并统计数量
  14. Camnetics Suite 2018 CamTrax64 GearTeq GearTrax for AI SE SW
  15. centos系统上安装masscan
  16. JavaScript日历1
  17. 关于Android的ImageView置顶
  18. axi_ddr_top
  19. java LPT1_com1/lpt1/prn/nul 木马后门处理方法集合
  20. 高等数学入门教程 — 自然底数e

热门文章

  1. 不再使用快捷方式打开电脑软件!如何Windows+r 来打开一个你想要打开的软件软件?
  2. YOLOv5在最新OpenVINO 2021R02版本的部署与代码演示详解
  3. 为增进理解力而奋斗终身
  4. linux云自动化运维基础知识23(DNS服务)
  5. Visual Studio 2017新版发布,极大提高开发效率丨附下载
  6. android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
  7. PHP特级课视频教程_第二十八集 PHP搜索代码测试_李强强
  8. CXF做的webservice简单例子
  9. IT资产管理的演变原文-Generations of IT Asset Management
  10. mac redies install