Python开发【内置模块篇】日志模块

logging配置

 1 import logging
 2 logging.basicConfig(level=logging.WARNING,
 3                     format=‘%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s‘,
 4                     datefmt=‘%a, %d %b %Y %H:%M:%S‘)
 5 try:
 6     int(input(‘num >>‘))
 7 except ValueError:
 8     logging.error(‘输入的值不是一个数字‘)
 9
10 logging.debug(‘debug message‘)       # 低级别的 # 排错信息
11 logging.info(‘info message‘)            # 正常信息
12 logging.warning(‘warning message‘)      # 警告信息
13 logging.error(‘error message‘)          # 错误信息
14 logging.critical(‘critical message‘) # 高级别的 # 严重错误信息

basicConfig

num >>hh
Sun, 30 Dec 2018 16:13:03 1.py[line:8] ERROR 输入的值不是一个数字
Sun, 30 Dec 2018 16:13:03 1.py[line:12] WARNING warning message
Sun, 30 Dec 2018 16:13:03 1.py[line:13] ERROR error message
Sun, 30 Dec 2018 16:13:03 1.py[line:14] CRITICAL critical message

输出结果

配置log对象

import loggin

logger = logging.getLogger()

fh = logging.FileHandler(‘log.log‘,encoding=‘utf-8‘)
sh = logging.StreamHandler()    # 创建一个屏幕控制对象

formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)
formatter2 = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s [line:%(lineno)d] : %(message)s‘)

# 文件操作符 和 格式关联
fh.setFormatter(formatter)
sh.setFormatter(formatter2)

# logger 对象 和 文件操作符 关联
logger.addHandler(fh)
logger.addHandler(sh)
logging.debug(‘debug message‘)       # 低级别的 # 排错信息
logging.info(‘info message‘)            # 正常信息
logging.warning(‘警告错误‘)      # 警告信息
logging.error(‘error message‘)          # 错误信息
logging.critical(‘critical message‘) # 高级别的 # 严重错误信息

2018-12-30 16:14:03,252 - root - WARNING [line:21] : 警告错误
2018-12-30 16:14:03,253 - root - ERROR [line:22] : error message
2018-12-30 16:14:03,253 - root - CRITICAL [line:23] : critical message

屏幕输出

1 2018-12-30 16:14:03,252 - root - WARNING - 警告错误
2 2018-12-30 16:14:03,253 - root - ERROR - error message
3 2018-12-30 16:14:03,253 - root - CRITICAL - critical message

log.log文件

原文地址:https://www.cnblogs.com/tangkaishou/p/10199758.html

时间: 2024-10-10 16:02:29

Python开发【内置模块篇】日志模块的相关文章

MyBatis 源码篇-日志模块1

在 Java 开发中常用的日志框架有 Log4j.Log4j2.Apache Common Log.java.util.logging.slf4j 等,这些日志框架对外提供的接口各不相同.本章详细描述 MyBatis 是如何通过适配器的方式集成和复用这些第三方框架的. 日志适配器 MyBatis 的日志模块位于 org.apache.ibatis.logging 包中,该模块中 Log 接口定义了日志模块的功能,然后分别为不同的日志框架定义不同的日志适配器,这些日志适配器都继承 Log 接口,L

MyBatis 源码篇-日志模块2

上一章的案例,配置日志级别为 debug,执行一个简单的查询操作,会将 JDBC 操作打印出来.本章通过 MyBatis 日志部分源码分析它是如何实现日志打印的. 在 MyBatis 的日志模块中有一个 jdbc package,package 中的内容如下图所示: BaseJdbcLogger 是一个抽象类,它是 jdbc package 下其他类的父类,类继承关系如下图所示: BaseJdbcLogger 类中定义了一些公共集合和简单的工具方法,提供给子类使用. BaseJdbcLogger

Python学习-基础篇4 模块与包与常用模块

一 模块介绍 1.什么是模块?#常见的场景:一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过import spam使用. #在python中,模块的使用方式都是一样的,但其实细说的话,模块可以分为四个通用类别: 1 使用python编写的.py文件 2 已被编译为共享库或DLL的C或C++扩展 3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包) 4 使用C编写并链接到python解释器的内置模块2.

Python入门之logging日志模块以及多进程日志

本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python的logging模块提供了灵活的标准模块,使得任何Python程序都可以使用这个第三方模块来实现日志记录.python logging 官方文档 logging框架中主要由四个部分组成: Loggers: 可供程序直接调用的接口 Handlers: 决定将日志记录分配至正确的目的地 Filters:

软件开发规范及日志模块

项目名称 1.bin 项目的启动文件目录 1.1 stat.py 2.conf   config配置文件 2.1 settings.py 可能会发生改变的配置信息 3.core  核心代码 3.1  相关文件,实际的python代码所在的文件 user.py auth.py main.py 4. lib库 5. db database 数据库 可以引用的所有数据 不一定时py 6. log 日志 ==================================================

[Python] iupdatable包:日志模块使用介绍

一.说明 日志模块是对 logging 模块的单例封装 特点: 可同时向控制台和文件输出日志,并可选择关闭其中一种方式的输出: 集成colorlog,实现根据日志等级不同,控制台输出日志颜色不同: 灵活切换是否输出调试内容 二.简单示例 安装 iupdatable 包 pip install --upgrade iupdatable 使用实例: 1 from iupdatable.logging.Logger import Logger 2 from iupdatable.logging.Log

Python开发常见问题之各模块循环依赖

今天写了一个程序,由于设计上的问题,导致两个模块需要相互引用,出现了“importError”错误.分析良久,对于模块循环依赖的问题有两种方法: 1.可通过调整import导入顺序来解决,把 import 语句放到方法定义的后面即可 2.两个模块写到一个文件里面去 对于此类问题Python并没有提供解决方案,所以尽量在设计之初就要避免出现模块循环依赖问题,以免开发后期大刀阔斧的修改.

Python开发第一篇 基础篇

开发: 操作系统就是个软件 计算机诞生: 计算机硬件的组合 只对操作系统级别的开发工作: 由微软,或者其他开发系统的团队做 开发 语言: 高级语言:Python,  Java ,  PHP,  c#      ,Go      ,ruby     ,C++ ....... 低级语言:C,汇编 区别,高级语言之间,制定的规则不同 机器码和字节码: 机器码:计算机能直接识别的东西(低级语言) 字节码:高级语言通过转换成低级语言能识别的字节码--->机器码(节省转换流程,加速效率) 语言之间的对比:

python开发调用基础:模块和包

一,包的调用 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #调用 glance[1..4]\api\policy.py 路径 5 # policy.py 内容 6 # def one(): 7 # print('this first!') 8 9 # 1.glance1里面什么都没有写,只有plicy这个模块写了个方法,导入了具体的模块 10 # from glance1.api import policy 导入绝体模块 11 # poli

python的内置模块random随机模块方法详解以及使用案例(五位数随机验证码的实现)

1.random(self): Get the next random number in the range [0.0, 1.0) 取0到1直接的随机浮点数 import random print(random.random()) C:\python35\python3.exe D:/pyproject/day21模块/random随机模块.py 0.3105503800442595 2.randint(self, a, b) Return random integer in range [a