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 日志写入文件,参数说明及动态判断文件是创建还是追加的更多相关文章

  1. python 判断文件是否存在和删除文件的api (其中判断文件在不在让想起这个可以强兼容jenkins工作目录那个问题)

    判断文件在不在的api: os即operating system(操作系统),Python 的 os 模块封装了常见的文件和目录操作. os.path模块主要用于文件的属性获取,exists是“存在” ...

  2. python 获取中文拼音首字母;判断文件夹是否存在

    1.如何获取中文字符串的首字母 import pinyin #输入name def get_pinyin_first_alpha(name): return "".join([i[ ...

  3. UNIX环境编程学习笔记(6)——文件I/O之判断文件类型

    lienhua342014-09-01 1 文件类型 我们平时最常接触的文件类型有普通文件(regular file)和目录(di-rectory file),但是 UNIX 系统提供了多种文件类型: ...

  4. ajaxFileUpload+struts2多文件上传(动态添加文件上传框)

    上一篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传, 但仅仅是固定的文件个数 ...

  5. ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)

    上篇文章http://blog.csdn.net/itmyhome1990/article/details/36396291介绍了ajaxfileupload实现多文件上传, 但只是固定的文件个数,如 ...

  6. winform展示Unity3D文件(支持动态改变文件路径)

    winform下展示Unity3D文件可以支持对Unity3D实现的模块进行包装,以及在其他的项目中需要展示Unity3D的界面时候,恰到适宜地进行打开展示,这里我展示如何使用winform打开Uni ...

  7. [Java] 03 String获取文件后缀名,判断文件是否合法

    package test.string; import java.util.Arrays; import java.util.List; public class GetFileType { priv ...

  8. Python 判断文件是否存在的三种方法

    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...

  9. Python判断文件是否存在的三种方法

    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...

  10. Python判断文件是否存在的三种方法【转】

    转:http://www.cnblogs.com/jhao/p/7243043.html 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先 ...

随机推荐

  1. 阿里云贾扬清:大数据+AI工程化,让数据从「成本」变为「资产」

    简介: 近年来,数字经济发展迅速,企业转型背后频频涌现「数字力量」的身影.云计算.大数据.人工智能的快速融合形成了数字经济的新基建,也为数字经济发展带来了新的机遇. 5 月 20 日,阿里巴巴副总裁. ...

  2. [ELK] Elastic Stack 的安全性预览

    注:ELK Stack 之后的版本都叫做 Elastic Stack,增加了 Beats 等组件. 安全性保护方式: 阻止未授权的访问,通过 密码认证保护.RBAC授权.IP 过滤. 保证数据完整性, ...

  3. 提取jks文件证书和私钥

    提取jks文件证书和私钥 JKS文件由公钥和密钥构成利用Java Keytool 工具生成的文件,它是由公钥和密钥构成的,公钥就是我们平时说的证书(.cer后缀的文件),私钥就是密钥(.key后缀的文 ...

  4. FFmpeg开发笔记(十九)FFmpeg开启两个线程分别解码音视频

    ​同步播放音视频的时候,<FFmpeg开发实战:从零基础到短视频上线>一书第10章的示例程序playsync.c采取一边遍历一边播放的方式,在源文件的音频流和视频流交错读取的情况下,该方式 ...

  5. 深度学习框架火焰图pprof和CUDA Nsys配置指南

    注:如下是在做深度学习框架开发时,用到的火焰图pprof和 CUDA Nsys 配置指南,可能对大家有一些帮助,就此分享.一些是基于飞桨的Docker镜像配置的. 一.环境 & 工具配置 0. ...

  6. 如何提高WordPress的加载速度

    针对wordpress加载速度慢的原因: 1. 由于Wordpress系统默认使用谷歌字体,在国内谷歌域名被屏蔽,所以导致操作反应慢.对于很多商业主题默认使用了谷歌字体.谷歌ajax库.谷歌地图等谷歌 ...

  7. Wang Tile的Shader简易实现

    在使用大面积的平铺纹理时,会导致重复感较强的贴图呈现在画面中.我们可以通过许多方法进行优化,WangTile就是其中一种. WangTile(王浩瓷砖)方法通过对每条边标记颜色,并在平铺时将相同颜色的 ...

  8. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(12.A)- uSDHC eMMC启动时间(RT1170)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 uSDHC eMMC启动时间. 本篇是 i.MXRT1170 启动时间评测第五弹,前四篇分别给大家评测了 ...

  9. .NET Aspire 正式发布:简化 .NET 云原生开发

    .NET团队北京时间2024年5月22日已正式发布.NET Aspire ,在博客文章里做了详细的介绍:.NET Aspire 正式发布:简化 .NET 云原生开发 - .NET 博客 (micros ...

  10. Redis知识网络

    Redis知识网络 作者:运维君莫笑 链接:https://www.zhihu.com/question/470465324/answer/2006650219 Redis为什么这么快? 根据官方数据 ...