7、模块之三 logging模块

1、logging模块

# python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为
# debug(), info(), warning(), error() and critical() 5个级别
# Level            When it’s used
# DEBUG            Detailed information, typically of interest only when diagnosing problems.
# INFO             Confirmation that things are working as expected.
# WARNING          An indication that something unexpected happened, or indicative of some problem in the near future (e.g. ‘disk space low’). The software is still working as expected.
# ERROR            Due to a more serious problem, the software has not been able to perform some function.
# CRITICAL         A serious error, indicating that the program itself may be unable to continue running.

不同的日志级别对应不同的数值,具体如下:
CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10

格式化:

logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)
%(name)s            Name of the logger (logging channel)
%(levelno)s         Numeric logging level for the message (DEBUG, INFO,
                    WARNING, ERROR, CRITICAL)
%(levelname)s       Text logging level for the message ("DEBUG", "INFO",
                    "WARNING", "ERROR", "CRITICAL")
%(pathname)s        Full pathname of the source file where the logging
                    call was issued (if available)
%(filename)s        Filename portion of pathname
%(module)s          Module (name portion of filename)
%(lineno)d          Source line number where the logging call was issued
                    (if available)
%(funcName)s        Function name
%(created)f         Time when the LogRecord was created (time.time()
                    return value)
%(asctime)s         Textual time when the LogRecord was created
%(msecs)d           Millisecond portion of the creation time
%(relativeCreated)d Time in milliseconds when the LogRecord was created,
                    relative to the time the logging module was loaded
                    (typically at application startup time)
%(thread)d          Thread ID (if available)
%(threadName)s      Thread name (if available)
%(process)d         Process ID (if available)
%(message)s         The result of record.getMessage(), computed just as
                    the record is emitted

打印日志到屏幕:

##日志打印到屏幕
logging.warning("user [alex] attempted wrong password more than 3 times")
logging.critical("server is down")

日志输出到文件:

logging.basicConfig(filename=‘python.log‘,level=logging.INFO,format=‘%(asctime)s %(message)s‘, datefmt=‘%m/%d/%Y %I:%M:%S %p‘)
logging.debug(‘This message should go to the log file‘)
logging.info(‘So should this‘)
logging.warning(‘And this, too‘)

屏幕日志双向输出:

#如果需要日志和屏幕同时输出的话,需要下面的操作
# The logging library takes a modular approach and offers several categories of components: loggers, handlers, filters, and formatters.

# Loggers expose the interface that application code directly uses.
# Handlers send the log records (created by loggers) to the appropriate destination.
# Filters provide a finer grained facility for determining which log records to output.
# Formatters specify the layout of log records in the final output.
# 1、创建一个log对象
logger=logging.getLogger(‘test_log‘)
logger.setLevel(logging.DEBUG)

# 2、创建console handler 并设置等级
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING)

fh = logging.FileHandler()
fh.setLevel(logging.DEBUG)

# 3、创建日志格式
formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)
ch.setFormatter(formatter)
fh.setFormatter(formatter)

# 4、将日志实例添加到handler
logger.addHandler(ch)
logger.addHandler(fh)

# 5、打印日志测试
import logging

#create logger
logger = logging.getLogger(‘TEST-LOG‘)
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)

# create file handler and set level to warning
fh = logging.FileHandler("python.log")
fh.setLevel(logging.WARNING)
# create formatter
formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)

# add formatter to ch and fh
ch.setFormatter(formatter)
fh.setFormatter(formatter)

# add ch and fh to logger
logger.addHandler(ch)
logger.addHandler(fh)

# ‘application‘ code
logger.debug(‘debug message‘)
logger.info(‘info message‘)
logger.warn(‘warn message‘)
logger.error(‘error message‘)
logger.critical(‘critical message‘)

  

时间: 2024-10-06 18:13:41

7、模块之三 logging模块的相关文章

【Pytyon模块】logging模块-日志处理

一.日志相关概念 1.日志的作用 通过log的分析,可以方便用户了解系统或软件.应用的运行情况:如果你的应用log足够丰富,也可以分析以往用户的操作行为.类型喜好.地域分布或其他更多信息:如果一个应用的log同时也分了多个级别,那么可以很轻易地分析得到该应用的健康状况,及时发现问题并快速定位.解决问题,补救损失.简单来讲就是,我们通过记录和分析日志可以了解一个系统或软件程序运行情况是否正常,也可以在应用程序出现故障时快速定位问题.比如,做运维的同学,在接收到报警或各种问题反馈后,进行问题排查时通

第三十六篇 hashlib模块、hmac模块和logging模块

目录 第三十七篇 hashlib模块.hmac模块和logging模块 一.hashlib模块 1.hash是什么 2.撞库破解hash算法加密 二.hmac模块 三.logging模块 1.日志的五个级别 2.V3 3.日志配置文件 4.总结 第三十七篇 hashlib模块.hmac模块和logging模块 一.hashlib模块 1.hash是什么 1.hashlib模块一般用于明文加密 2.hash是一种算法,在hashlib模块中主要提供了md5 等算法,传入的内容通过这些算法,会得到一

os模块,sys模块,json / pickle模块,logging模块

目录 OS模块 sys模块 json和pickle模块 序列化和反序列化 json模块 pickle logging模块 OS模块 能与操作系统交互,控制文件 / 文件夹 # 创建文件夹 import os os.mkdir(r'D:\py_case\test') # 删除文件夹 os.rmdir(r'D:\py_case\test') # # 列出指定目录下所有文件和子目录 (子目录文件不会列出来) res = os.listdir(r'D:\pycharm_project\Test') pr

day6 subprocess模块、logging模块

    logging模块 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为 debug(), info(), warning(), error() and critical() 5个级别,下面我们看一下怎么用:

Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块

5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 5.1 使用sys.argv进行登录判断,跳过 i/o阻塞 #使用sys.argv进行登录判断,跳过 i/o阻塞 import s

Python--模块之sys模块、logging模块、序列化json模块、序列化pickle模块

sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 示例: import sys count = 1 while count <10: print(count) if count == 8: sys.exit() count += 1 print('ending')结果:12345678 import sys print(sys.

python常用模块之logging模块

---恢复内容开始--- 一.logging模块的作用以及两种用法 logging模块看名字就知道是用来写日志的,以前我们写日志需要自己往文件里写记录信息,使用了logging之后我们只需要一次配置好,以后写日志的事情都不需要我们操心了,非常方便.logging模块有两种使用方法,一种是简单的函数式,另一种是用logging对象的方式,对象的方式使用起来功能更全更灵活,所以使用最多的也是对象的方式. 二.函数式配置 import logging logging.basicConfig(level

Python基础第十三天——sys模块、logging模块、json模块、pickle模块

一.sys模块 1.定义: 与python解释器交互的一个模块 2.sys模块常用的方法 (1)sys.argv方法 定义:命令行参数list,第一个元素是程序本身路径 例: import sys print(sys.argv) # sys.argv只是反映当前模块名,用一个列表存着 # 而pycharm软件则给我们自动加上了绝对路径 输出结果:          # 这个结果并不正确,是因为这是pycharm给加上去的 ['C:/Users/William/PycharmProjects/Py

python之路--day15--常用模块之logging模块

常用模块 1 logging模块 日志级别:Noset (不设置) Debug---(调试信息)----也可用10表示 Info--(消息信息)----也可用20表示 Warning---(警告信息)----也可用30表示 Error------(错误消息)----也可用40表示 Critical---(严重错误)---也可用50表示 默认级别是Warning,默认打印到终端 1 import logging 2 3 logging.debug('调试debug') 4 logging.info