当前位置: 首页 > news >正文

Backend - 日志记录

目录

1. settings.py 文件设定

2. book_log.py 文件设定

3. view 视图文件调用


1. settings.py 文件设定

文件位置:BookProject 目录下

LOG_PATH = os.path.join(os.getcwd(), 'logs')  # 设定日志文件位置:项目名下的logs文件夹中

2. book_log.py 文件设定

文件位置:BookApp.views.tools 中

理解下方代码的时间线:-----要删除文件的所在时间范围-----mark_day节点-----暂时保留文件的所在时间-----today节点---->

import os
from BookProject.settings import LOG_PATH
from threading import Thread
import logging
import logging.handlers
import datetime
# 生成 logs 文件夹
if not os.path.exists(LOG_PATH):
    os.mkdir(LOG_PATH)
# 生成 log 文件
log_file_name=os.path.join(LOG_PATH,'{}.log'.format(str(datetime.datetime.now().strftime('%Y-%m-%d'))))  # 项目名\logs\XXXX-XX-XX.log
# log日志的基础配置
logging.basicConfig(
    handlers=[logging.handlers.TimedRotatingFileHandler(filename=log_file_name, when='D', interval=60*60*24, backupCount=2)]
    ,level=logging.DEBUG
    ,format='%(asctime)s  %(message)s'  # 日志内容的展示格式
    ,datefmt='[%Y-%m-%d %H:%M:%S]' # 日志内容的记录时间格式
    )
# 操作成功的日志记录
def info_threadjob(msg):
    logging.info(msg)
def log_success(msg):
    t1 = Thread(target=info_threadjob, args=(msg,))
    t1.start()
# 操作失败的日志记录
def err_threadjob(msg):
    logging.exception(msg)
def log_error(msg):
    t1 = Thread(target=err_threadjob, args=(msg,))
    t1.start()
# 删除几天前操作的日志文件
def del_logs():
    day_len = 1 # 天数
    today = datetime.datetime.now()  # 今天时间
    prev_day = datetime.timedelta(days=-day_len)  # 前 day_len 天
    mark_day = today + prev_day  # 前day_len天的具体日期时间节点,2023-01-27 16:29:29.206065
    res_list = os.listdir(LOG_PATH)  # 日志文件位置列表
    for r in res_list: # 循环每个日志文件
        log_file = os.path.join(LOG_PATH, r)
        file_time = os.path.getmtime(log_file)  # 文件的最后修改时间(注意是文件实实在在有修改的时间,而不是文件内容里的时间,也不是日志文件名上的时间)
        if datetime.datetime.fromtimestamp(file_time) <= mark_day: # 前者 2021-01-28 16:12:02.148921
            os.remove(log_file)

3. view 视图文件调用

注意:写入日志的内容,不能有中文

from BookApp.views.tools.book_log import *
log_success("1. start getting data from from_db")  # 记录操作成功讯息
try:
    del_logs()  # 删除已有日志文件
except Exception as e:
    log_error("error: {}".format(str(e)))  # 记录操作失败讯息

相关文章:

  • 美摄科技实时语音数字人解决方案
  • 20240304金融读报:票据贴现数据挖掘与新质生产力信贷创新
  • STM32启动过程及反汇编
  • 设计模式——外观模式
  • Webpack配置与运行基础教程
  • 初学者学习51还是STM32
  • 猴子吃桃问题(python版)
  • (学习日记)2024.03.03:UCOSIII第五节:常用汇编指令+OS初始化+启动任务+任务切换
  • 算法:动态规划
  • SAP PP学习笔记04 - BOM2 -通过Serial来做简单的BOM变式配置,副明细,BOM状态,BOM明细状态,项目种类,递归BOM
  • 在java java.util.Date 已知逝去时间怎么求年月日 数学计算不用其他方法
  • 命名空间(namespace)
  • nginx使用详解--动静分离
  • 每天学习2小时——黑客(网络安全)技术
  • [LeetBook]【学习日记】寻找链表相交节点
  • day57 集合 List Set Map
  • 服务器git安装python包失败,如何手动下载github项目包并安装到虚拟环境中(简单易懂)
  • 【JavaScript 漫游】【029】GlobalEventHandlers 接口总结
  • 在Spring Boot中如何实现异常处理?
  • 云计算 2月28号 (linux的磁盘分区)
  • 马上评丨一些影视剧的片名,越来越让人看不懂
  • 谭秀洪任广西梧州市人大常委会党组书记,此前任北海市委常委
  • 最高法:侵犯著作权罪中的“复制发行”不包括单纯发行行为
  • 杨靖︱“一笔糊涂账”:博马舍与美国革命
  • 【社论】高度警惕AI谣言对网络空间的污染
  • 宁夏回族自治区人大环境与资源保护委员会主任委员张柏森被查