comment—utils—financial_logging.py

import logging
import logging.handlers
from flask import request
import os'''
定义日志的格式和日志输出的目标
'''
class RequestShoppingFormatter(logging.Formatter):'''自定义的日志输出格式'''def format(self, record):record.url=request.url  #需要在日志中记录请求地址record.remote_addr=request.remote_addr  #需要在日志中记录客户端的地址return super().format(record)#创建一个个性化的logger对象
def create_logger(app):'''设置日志的配置:param app:Flask中app对象:return:'''logging_file_dir=app.config['LOGGING_FILE_DIR']    #日志文件所在的目录logging_file_max_bytes=app.config['LOGGING_FILE_MAX_BYTES']    #日志文件的最大的大小logging_file_backup=app.config['LOGGING_FILE_BACKUP']    #保留备份的日志文件个数logging_level=app.config['LOGGING_LEVEL']       #默认的日志级别#设置日志输出的格式(针对文件)request_formatter=RequestShoppingFormatter('[%(asctime)s] %(remote_addr)s 请求 %(url)s \t %(levelname)s  在 %(module)s %(lineno)d : %(message)s')#检查如果目录不存在,则创建目录if os.path.isdir(logging_file_dir):passelse:os.mkdir(logging_file_dir)  #如果目录不存在,创建目录#自定义一个目录和日志文件,RotatingFileHandler:安装指定文件大小来规定日志文件的生产规则# flask_file_handler=logging.handlers.RotatingFileHandler(filename=os.path.join(logging_file_dir,'financial.log'),#                                      maxBytes=logging_file_max_bytes,#                                      backupCount=logging_file_backup)#为了让一个进程操作一个文件,文件名的命名:加上当前进程的ID#TimedRotatingFileHandler:根据时间来规定日志文件的生成规则。flask_file_handler = logging.handlers.TimedRotatingFileHandler(filename=os.path.join(logging_file_dir, 'financial'+'_'+str(os.getpid())+'.log'),when='D',interval=1,backupCount=logging_file_backup)#给当前的handler设置格式flask_file_handler.setFormatter(request_formatter)#todo 得到一个logger对象,根据包(financial)的名字,用其他的包名不符合逻辑flask_logger=logging.getLogger('financial')flask_logger.addHandler(flask_file_handler)flask_logger.setLevel(logging_level)#整个项目需要两个handle:文件。控制台flask_console_handler=logging.StreamHandler()flask_console_handler.setFormatter(logging.Formatter('[%(asctime)s] %(levelname)s %(module)s %(lineno)d : %(message)s'))#当项目运行环境是debug模式,才用控制台输出if app.debug:flask_logger.addHandler(flask_console_handler)

main.py中初始化日志处理的工具

from comment.utils.financial_logging import create_loggercreate_logger(app)

【Flask项目2】多进程下的日志文件(2)相关推荐

  1. 在 Java 中,如何批量读取本项目资源目录下的所有文件

    在 Java 中,如何批量读取本项目资源目录下的所有文件 读取资源目录下的指定文件 方法 1:使用 JDK 中原始 API 方法 2:借助 Spring 附录 将 InputStream 转化为 by ...

  2. Tomcat logs 目录下各日志文件的含义

    [Tomcat]tomcat logs 目录下各日志文件的含义 tomcat每次启动时,自动在logs目录下生产以下日志文件,按照日期自动备份.可以帮助我们更好的找出错误. 一. 认识各种目录的作用及 ...

  3. 【Tomcat】tomcat logs 目录下各日志文件的含义

    [Tomcat]tomcat logs 目录下各日志文件的含义 一.认识各种目录的作用及记录的信息目录 1.catalina.日期.log 2.commons-daemon.日期.log 3.host ...

  4. Centos下重要日志文件及查看方式

    Centos下重要日志文件及查看方式 时间:2013-07-28 12:10来源:中国IT实验室 作者:感谢:"匿名"投稿 举报 点击:6525次 id="iframeu ...

  5. ubuntu 15.04 /var/log/下各个日志文件及修复无message文件和debug文件

    本文简单介绍ubuntu/var/log/下各个日志文件,方便出现错误的时候查询相应的log /var/log/alternatives.log-更新替代信息都记录在这个文件中/var/log/app ...

  6. logback多进程写同一日志文件导致日志混乱问题

    记录一次logback多进程写同一日志文件导致日志混乱问题 参考该博客解决问题

  7. Flask项目能打包为单个exe文件运行?掌握原理后居然如此简单!

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨王翔丨 来源丨清风Python(ID:Bree ...

  8. 多进程写同一个日志文件时如何确保每条日志不与其他日志重叠

    背景/ write + O_APPEND 可以实现多进程写相同日志不交叉 我们有多个进程,往同一个文件写日志.当然希望能每条日志边界清晰,既不与其他日志重叠,也不与其他日志交叉.为了达到这个目的,最直 ...

  9. Linux 下高级日志文件查看器Log File Navigator

    Log File Navigator,简称lnav,是一款面向小规模的适用于 Linux 的高级日志文件查看器.它是一个终端应用程序,可以理解您的日志文件,让您轻松找到问题,几乎不需要什么设置. ln ...

最新文章

  1. pcl_filters模块api代码解析
  2. git.exe 启动 慢_拳头:今年将修复英雄联盟客户端 启动时间降到19秒
  3. 山水人家(附简要教程)
  4. Latex中的一些表格用法总结(二)——行列式的表格,表格的切分和合并
  5. ISLR_ANOVA
  6. linux能修复根目录硬盘,Linux系统报错修复的方法
  7. android电源驱动程序,[转]Android虚拟电源管理驱动
  8. Android深度探索HAL与驱动开发—第8章
  9. 乡村振兴国际经验-农民丰收节贸易会: 谋定城镇化进程
  10. 简单递推公式转换矩阵求解
  11. java 枚举使用例子_Java枚举详解及使用实例(涵盖了所有典型用法)
  12. JavaScript中带有示例的Math.PI属性
  13. winform flash
  14. 用Matlab处理信号从入门到入土1
  15. html中的字体怎么选择,网页开发中如何选取合适且统一的字体
  16. 云购系统、一元云购系统接入短信验证及订单通知功能
  17. 腾讯通、第一企信、imo云办公室、263云通信哪家强
  18. 水冷计算机配置单,新手水冷电脑组装的详细图文教程
  19. 如何获取手机的屏幕尺寸
  20. xposed模块编写教程_Xposed插件开发入门详解,

热门文章

  1. mysql语言的简介_谁能帮我介绍一下 MY SQL ?
  2. 为什么PUE只说明了数据中心能效的一部分?
  3. 机房工程施工细节标准做法,每张图都有说明
  4. 数据中心机房布线系统运维和管理
  5. 数据中心级交换机考核方法
  6. 直流UPS与传统UPS系统节能分析
  7. shell怎么把负数变成正数_excel怎么计算平方根-记住简单的收藏复杂的
  8. 成功解决RuntimeWarning: divide by zero encountered in double_scalars
  9. DL之perceptron:利用perceptron感知机对股票实现预测
  10. 成功解决from nets import inception_resnet_v2 ModuleNotFoundError: No module named 'nets'