python logging模块书写日志以及日志分割详解
作者:raylu666 发布时间:2023-02-23 12:52:16
标签:python,logging,日志
本文范例是书写两个日志:错误日志(ERROR级别)和运行日志(DEBUG级别),其中运行日志每日凌晨进行分割
import logging,datetime,logging.handlers
from conf import settings
if __name__ == "__main__":
#两个日志,错误日志和运行日志,输出文件路径及文件名
error_log = settings.ERROR_LOG_FILE
run_log = settings.RUN_LOG_FILE
logger = logging.getLogger("mylog")
logger.setLevel(logging.DEBUG)
DATE_FORMAT = "%Y-%m-%d %H:%M:%S %p"
LOG_FORMAT = "%(asctime)s------%(levelname)s[:%(lineno)d]-------%(message)s"
#第一种普通写法
#file_run_log = logging.FileHandler(run_log)
#假如需要每日凌晨进行日志切割,注意导入模块时需要导入logging.handlers,否则报错
#when参数可以设置S M H D,分别是秒、分、小时、天分割,也可以按周几分割,也可以凌晨分割
file_run_log = rf_handler = logging.handlers.TimedRotatingFileHandler(run_log, when='midnight', interval=1, backupCount=7, atTime=datetime.time(0, 0, 0, 0))
file_error_log = logging.FileHandler(error_log)
file_run_log.setLevel(level=logging.INFO)
file_run_log.setFormatter(logging.Formatter(LOG_FORMAT))
file_error_log.setLevel(level=logging.ERROR)
file_error_log.setFormatter(logging.Formatter(LOG_FORMAT))
logger.addHandler(file_run_log)
logger.addHandler(file_error_log)
logger.info("info test")
logger.error("error test")
logger.critical("critical test")
#普通全局写法
# logging.basicConfig(level=logging.DEBUG,filename=run_log,format=LOG_FORMAT,datefmt=DATE_FORMAT)
# logging.info("this is a log")
# logging.warning("this is warning")
settings.py:
ERROR_LOG_FILE = os.path.join(BASE_DIR,"log","error.log")
RUN_LOG_FILE = os.path.join(BASE_DIR,"log","run.log")
日志输出结果run.log:
来源:https://blog.csdn.net/java_raylu/article/details/85227064


猜你喜欢
- 本文实例讲述了Python操作SQLite数据库的方法。分享给大家供大家参考,具体如下:SQLite简介SQLite,是一款轻型的数据库,是
- 希望这是window.open()打开fullscreen全屏窗口时无提示关闭父窗口的完美解决方案:我们通常都是用控件法,在父窗口文件里放一
- 前言为了便于精准排查问题,需要将当前的请求信息与当前执行的 SQL 信息设置对应关系记录下来,记录的 SQL 信息包括:执行 SQL 的当前
- 报错信息最近闲来无事,用python的tkinter库开发了一款带日程提醒的万年历桌面程序。在程序开发结束开始打包时,却发现一直报错PyIn
- 安装通过 pip 安装 Beautiful Soup 模块:pip install beautifulsoup4 。 还可以使用 PyCha
- 一、介绍数据库的约束是对表中数据进行的一种限制,为了保证数据的正确性、有效性、完整性。无论是在添加数据还是在删除数据的时候,都能提供帮助。所
- 抱着“取之于众 服务于众”的思想,我总结了一下,把它拿到网上来与大家分享,希望能帮助遇到类似问题的朋友。 我主要使用了IE内置的WebBro
- 当一个 .txt 文件的数据过于庞大,此时想要对数据进行排序就需要先将数据进行切割,然后通过归并排序,最终实现对整体数据的排序。要实现这个过
- 敲了这么多年代码,每年都得画一些心啊花啊什么的,所以现在常规的已经有些倦怠了,至少也得来个三维图形才看着比较合理,而且光是三维的也没啥意思,
- 本文实例讲述了python实现线程池的方法。分享给大家供大家参考。具体如下:原理:建立一个任务队列,然多个线程都从这个任务队列中取出任务然后
- 依赖条件:需要有Hadoop,hive,zookeeper,hbase环境映射:每一个在 Hive 表中的域都存在于 HBase 中,而在
- 本文实例讲述了Python 类的私有属性和私有方法。分享给大家供大家参考,具体如下:xx:公有变量_xx:公有变量或方法,不能通过impor
- 1. lock互斥锁知识点:lock.acquire()# 上锁lock.release()# 解锁#同一时间允许一个进程上一把锁 就是Lo
- 记录一些select的技巧: 1、select语句可以用回车分隔 $sql="select * from&nb
- Mysql Explain 详解一.语法explain < table_name >例如: explain select * f
- 介绍分面是指事物的多维度属性。例如一本书包含主题、作者、年代等分面。而分面搜索是指通过事物的这些属性不断筛选、过滤搜索结果的方法。可以将分面
- 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-Conq
- 一、获取文件路径实现1.1 获取当前文件路径import oscurrent_file_path = __file__print(f&quo
- 1概述 SQL语言的本质就是一串伪代码,表达的是做什么,而不是怎么做的意思。如其它语言一样,SQL语句需要编译之后才能运行,所以每一条SQL
- 本文实例讲述了Python实现查找系统盘中需要找的字符。分享给大家供大家参考。具体如下:'''Created on