IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> python logging标准模块 简单使用 -> 正文阅读

[游戏开发]python logging标准模块 简单使用

方法一:

import logging

# 记录器(笔)
log = logging.getLogger('log')
log.setLevel(logging.INFO)

# 处理器(发送)
Handler = logging.StreamHandler()
Handler.setLevel(logging.INFO)

# 创建日志文件
file = logging.FileHandler(filename='1_q.log', encoding="utf-8", mode="a")

# 日志格式设置
#  时间:          asctime
# 级别名称:       levelname
# 文件名字:       filename
# 程序行号:        lineno
# 自定义消息:      message
# 注意占位保持整齐
f = logging.Formatter("%(asctime)s%(levelname)sl%(filename)s:%(lineno)s1%(message)s")

# 处理器 设置格式
Handler.setFormatter(f)
# 日志文件 设置格式
file.setFormatter(f)

# 记录器设置处理器
log.addHandler(Handler)
log.addHandler(file)

# 过滤器 暂时不用


# 日志等级
# debug     debug用来打印一些调试信息,级别最低
# info      info,用来打印一些正常的操作信息
# warning   waring,用来用来打印警告信息
# error     error,一般用来打印一些错误信息
# critical  critical,用来打印一些致命的错误信息,等级最高

log.debug('debug,用来打印一些调试信息,级别最低')
log.info('info,用来打印一些正常的操作信息')
log.warning('waring,用来用来打印警告信息')
log.error('error,一般用来打印一些错误信息')
log.critical('critical,用来打印一些致命的错误信息,等级最高')

方法二:
设置配置文件:文件名:logging.conf

解释:

# 定义记录器
[loggers]           #固定写法
keys=root,applog    #创建2个app名,root是父类,必需存在的

# 定义处理器
[handlers]
keys=fileHandler,consoleHandler  # 定义了两个 分配给两个记录器

# 定义格式
[formatters]
keys=simpleFormatter

# 记录器1 的绑定
[logger_root]
level=DEBUG
handlers=consoleHandler

# 记录器2 的绑定
[logger_applog]
level=DEBUG
handlers=fileHandler,consoleHandler
qualname=applog   # 别名
propagate=0       # 0代表不继承

# 处理器 --
[handler_consoleHandler]
class=StreamHandler
args=(sys.stdout,)
level=DEBUG
formatter=simpleFormatter

# 处理器 --
[handler_fileHandler]
class=handlers.TimedRotatingFileHandler   # 时间规划
args=('applog', 'midnight',1,0)           # 每天midnight(午夜)分割 延迟1秒 备份个数 0为全部
level=DEBUG
formatters=simpleFormatter

# 格式 --
[formatter_simpleFormatter]
format=%(asctime)s|%(levelname)s|%(filename)s[:%(lineno)d]|%(message)s
datefmt=%Y-%m-%d %H:%M:%S

使用时:

[loggers]
keys=root,applog

[handlers]
keys=fileHandler,consoleHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_applog]
level=DEBUG
handlers=fileHandler,consoleHandler
qualname=applog
encoding="utf-8"
propagate=0


[handler_consoleHandler]
class=StreamHandler
args=(sys.stdout,)
level=DEBUG
formatter=simpleFormatter


[handler_fileHandler]
class=handlers.TimedRotatingFileHandler
args=('applog', 'midnight',1,0)
level=DEBUG
formatters=simpleFormatter

[formatter_simpleFormatter]
format=%(asctime)s|%(levelname)8s|%(filename)8s[:%(lineno)d]|%(message)8s
datefmt=%Y-%m-%d %H:%M:%S

代码使用:

import logging.config

# 加载配置文件
logging.config.fileConfig('logging.conf')

# rootLogger = logging.getLogger()
# rootLogger.debug("的")

# 使用 applog 记录器记录
logger = logging.getLogger('applog')
logger.debug("3")
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:17:25  更:2022-05-06 11:18:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 11:50:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码