首页 > 编程语言 >python 日志写入文件,参数说明及动态判断文件是创建还是追加

python 日志写入文件,参数说明及动态判断文件是创建还是追加

时间:2022-08-30 16:49:20浏览次数:45  
标签:文件 logging logger2 python filename error 日志 line

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

 

标签:文件,logging,logger2,python,filename,error,日志,line
From: https://www.cnblogs.com/oktokeep/p/16639894.html

相关文章

  • Python中函数或者类对象带()与不带()的区别——闭包和函数返回时的常见现象
    Python中函数或者类对象带()与不带()的区别-----闭包和函数返回时的常见现象-函数不带括号时,调用的是这个函数本身,是整个函数体,是一个函数对象,不需等该函数执行完成,返回一个......
  • 3 个你不知道的 Python 库
    3个你不知道的Python库Python是那些从世界各地获得巨大贡献的社区之一,并且有一个我们不知道的无可挑剔的集合。让我们深入挖掘并了解三个新的python库。人脸识别......
  • PostgreSQL用psql导入sql文件
    一、sql文件-------------------------------------------------------------------------------basics.sql---Tutorialonthebasics(tablecreationanddata......
  • find-查抄文件
     在某目录下查找名为“elm.cc”的文件find/home/lijiajia/-nameelm.cc查找文件名中包含某字符(如"elm")的文件find/home/lijiajia/-name'*elm*'......
  • Android 添加shape, selector等资源文件
    右键点击drawable文件夹,选择new->DrawableResourcefile  在弹出的NewResourcefile界面中,将Rootelement定义为shape,就可以添加一个shape文件;将Rootelement定义......
  • python压缩pdf(指定缩放比例)
    python压缩pdf(指定缩放比例)原理pdf文件处理使用https://pymupdf.readthedocs.io/en/latest/index.html库可以轻松实现,该库的官方说明文档见https://pymupdf.readthedo......
  • Python学习笔记:add、sub、mul、div、mod、pow
    一、介绍add()函数用于向调用者添加对象。使用语法为:DataFrame.add(other,axis='columns',level=None,fill_value=None)实际上等价于dataframe+other的直接使......
  • 2022 IEEE 编程语言榜单发布!Python 又双叒叕霸榜了,学 SQL 工作更吃香!
    哈喽兄弟们!近年来,Python宛如一匹黑马,一骑绝尘,横扫TIOBE、StackOverflow等榜单,如今在IEEESpectrum发布的第九届年度顶级编程语言榜单中,Python依然是C、C++......
  • python自学笔记10:while循环和for循环
    条件控制和循环控制是两种典型的流程控制方法,前面我们写了if条件控制,这节讲for循环和while循环。循环是另一种控制流程的方式,一个循环体中的代码在程序中只需要编......
  • python安装
    首先我们需要下载python的环境这里我们去官网进行下载WelcometoPython.org  这里我们选择最新的版本进行安装,下载完成后打开可以看见以下的界面,这里我们自定义安装......