python 日志写入文件,参数说明及动态判断文件是创建还是追加
import logging
import os '''
格式符 含义
%(levername)s 日志级别名称
%(pathname)s 当前执行程序的路径(即脚本所在的位置)
%(filename)s 执行脚本程序名
%(lineno)d 日志当前的行号
%(asctime)s 打印日志的时间
%(message)s 日志信息 常用的日志 fromat 常用方案:fromat = '%(asctime)s %(filename)s[line:%(lineno)d] %(levername)s %(message)s'
'''
# fmt = "%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s %(pathname)s" '''
参数名 作用 举例
lever 日志输出的最低等级 lever=logging.DEBUG
format 日志输出格式 见下文的 format 具体格式
filename 存储位置 filename=‘d://debug.log’
filemode 输入模式 filemode=“w” 'w' 模式为没有文件时创建文件;'a' 模式为追加内容写入日志文件
'''
# logging.basicConfig(
# level=logging.DEBUG,
# format=fmt,
# filename="D:\logs-220817.txt",
# filemode="w",
# datefmt="%a, %d %b %Y %H:%M:%S"
# ) '''
debug:可以帮助我们在平时的开发过程中,帮助我们查看一些输出的信息是否正确。它可以替代我们平时使用的 print() 函数。
info:它代表了一般的消息类信息,只是为了记录一些程序的行为,比如程序执行到了某个位置,进行一些简单的记录。
warnning:该等级是一种警告,一般来说程序不会出错,但是可能存在一定的潜在风险。
error:一般对应业务中出现了重大问题。比如异常或者业务逻辑不应该执行到某种情况。我们都可以通过error来进行记录。
critical:比 error 更严重的级别,不过一般来说 error 级别已经很严重了,所以 critical 很少使用。
''' def init_log(path):
if os.path.exists(path):
mode = 'a'
else:
mode = 'w'
logging.basicConfig( # 针对 basicConfig 进行配置(basicConfig 其实就是对 logging 模块进行动态的调整,之后可以直接使用)
level=logging.INFO, # INFO 等级以下的日志不会被记录
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', # 日志输出格式
filename='back.log', # 日志存放路径(存放在当前相对路径)
filemode=mode, # 输入模式;如果当前我们文件已经存在,可以使用 'a' 模式替代 'w' 模式
# 与文件写入的模式相似,'w' 模式为没有文件时创建文件;'a' 模式为追加内容写入日志文件
) return logging current_path = os.getcwd()
path = os.path.join(current_path, 'back.log') log = init_log(path) # 初始化返回的 init_log() 函数 , 其实就是 return logging logging.debug("this is debug logger2")
logging.info("this is info logger2") logging.warn("this is warn logger2")
logging.error("this is error logger2")
logging.critical("this is critical logger2") # 文件输出
# 2022-08-30 16:20:50,738 testlogger2.py[line:68] INFO this is info logger
# 2022-08-30 16:20:50,738 testlogger2.py[line:70] WARNING this is warn logger
# 2022-08-30 16:20:50,739 testlogger2.py[line:71] ERROR this is error logger
# 2022-08-30 16:20:50,739 testlogger2.py[line:72] CRITICAL this is critical logger
# 2022-08-30 16:22:21,908 testlogger2.py[line:68] INFO this is info logger2
# 2022-08-30 16:22:21,909 testlogger2.py[line:70] WARNING this is warn logger2
# 2022-08-30 16:22:21,909 testlogger2.py[line:71] ERROR this is error logger2
# 2022-08-30 16:22:21,909 testlogger2.py[line:72] CRITICAL this is critical logger2
python 日志写入文件,参数说明及动态判断文件是创建还是追加的更多相关文章
- python 判断文件是否存在和删除文件的api (其中判断文件在不在让想起这个可以强兼容jenkins工作目录那个问题)
判断文件在不在的api: os即operating system(操作系统),Python 的 os 模块封装了常见的文件和目录操作. os.path模块主要用于文件的属性获取,exists是“存在” ...
- python 获取中文拼音首字母;判断文件夹是否存在
1.如何获取中文字符串的首字母 import pinyin #输入name def get_pinyin_first_alpha(name): return "".join([i[ ...
- UNIX环境编程学习笔记(6)——文件I/O之判断文件类型
lienhua342014-09-01 1 文件类型 我们平时最常接触的文件类型有普通文件(regular file)和目录(di-rectory file),但是 UNIX 系统提供了多种文件类型: ...
- ajaxFileUpload+struts2多文件上传(动态添加文件上传框)
上一篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传, 但仅仅是固定的文件个数 ...
- ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)
上篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传, 但只是固定的文件个数,如 ...
- winform展示Unity3D文件(支持动态改变文件路径)
winform下展示Unity3D文件可以支持对Unity3D实现的模块进行包装,以及在其他的项目中需要展示Unity3D的界面时候,恰到适宜地进行打开展示,这里我展示如何使用winform打开Uni ...
- [Java] 03 String获取文件后缀名,判断文件是否合法
package test.string; import java.util.Arrays; import java.util.List; public class GetFileType { priv ...
- Python 判断文件是否存在的三种方法
通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...
- Python判断文件是否存在的三种方法
通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...
- Python判断文件是否存在的三种方法【转】
转:http://www.cnblogs.com/jhao/p/7243043.html 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先 ...
随机推荐
- WPF 触摸下如何给 StylusPointCollection 添加点
本文告诉大家如何在触摸下给 WPF 的 StylusPointCollection 添加新的点 在自己默认创建的 StylusPointCollection 里面添加点是十分简单的,如以下代码,可以非 ...
- 【2023知乎爬虫】我用Python爬虫爬了2386条知乎评论!
目录 一.爬取目标 二.展示爬取结果 三.爬虫代码讲解 3.1 分析知乎页面 3.2 爬虫代码 四.同步视频 五.完整源码 您好,我是 @马哥python说,一枚10年程序猿. 一.爬取目标 前些天我 ...
- 【git】建立分支
1.git clone现有的项目 git clone git@github.com:zhangshengdong/Zflask.git 2.建立关联 git remote add origin git ...
- 02 go-zero入门--微服务demo
参考文档: https://go-zero.dev/cn/docs/advance/rpc-call 视频地址: https://space.bilibili.com/387126464/channe ...
- 如何将 Win10 企业版转换为专业版
有时候,我们需要将 Windows 10 企业版转换为专业版.这种情况可能发生在您购买了预装企业版的电脑,但实际上只需要专业版的功能.本文将介绍如何简单地将 Windows 10 企业版转换为专业版. ...
- 一图明白ACHI,SATA之间的关系
从上图中可以看到,SATA与PCI-E不仅可以指代物理的接口,还可以指代物理接口使用的传输协议. M.2物理接口可以使用SATA.PCI-E传输协议. U.2可以使用PCI-E传输协议.在网上搜了一下 ...
- FTP主动模式和被动模式(2)
防火墙对FTP的影响 ASPF 多通道协议 应用层程序有些使用的是单通道协议,有些使用的是多通道协议. 单通道协议 例如http协议,整个协议交互过程中,服务端和客户端只建立一个连接,并且服务端固定使 ...
- 一文了解npm install -g和npm install --save-dev的关系
本文分享自华为云社区<npm install -g 和 npm install --save-dev 的关系>,作者: SHQ5785. 一.npm install 本地安装 将安装包放在 ...
- Asp-Net-Core开发笔记:使用原生的接口限流功能
前言 之前介绍过使用 AspNetCoreRateLimit 组件来实现接口限流 从 .Net7 开始,AspNetCore 开始内置限流组件,当时我们的项目还在 .Net6 所以只能用第三方的 现在 ...
- 更改wsl中系统的安装位置
wsl默认安装位置是C盘,众所周知C盘总是不够用的,所以才有了把wsl的系统迁移到其它位置的需求.官网文档 首先查看所有分发版本 wsl -l --all -v 导出分发版为tar文件到D盘 wsl ...