OGG安装运维及常用函数

  • 更新时间:
  • 1628人关注
  • 点击下载

这是一个不错的OGG类学习资源,由弘光赫提供,主要知识点是关于OGG安装运维、OGG常用函数、OGG、OGG的内容,已被148人关注,同类资源中评分为8.3分。

精选笔记:python 如何对logging日志封装

12小时8分钟前回答

作者:做梦的人(小姐姐)
出处:https://www.cnblogs.com/chongyou/

因为最近在做平台,发现有同事,使用django封装了日志模块,看样子很简单,准备自己单独做了一个日志封装模板,对于python不熟练的我,封装部分参考了多个博主的内容,形成自己的日志模块,内容如下:

封装部分

创建一个logutil2的py文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: zhangjun
# @Date  : 2018/7/26 9:20
# @Desc  : Description
 
import logging
import logging.handlers
import os
import time
 
class logs(object):
    def __init__(self):
        self.logger = logging.getLogger("")
        # 设置输出的等级
        LEVELS = {'NOSET': logging.NOTSET,
                  'DEBUG': logging.DEBUG,
                  'INFO': logging.INFO,
                  'WARNING': logging.WARNING,
                  'ERROR': logging.ERROR,
                  'CRITICAL': logging.CRITICAL}
        # 创建文件目录
        logs_dir="logs2"
        if os.path.exists(logs_dir) and os.path.isdir(logs_dir):
            pass
        else:
            os.mkdir(logs_dir)
        # 修改log保存位置
        timestamp=time.strftime("%Y-%m-%d",time.localtime())
        logfilename='%s.txt' % timestamp
        logfilepath=os.path.join(logs_dir,logfilename)
        rotatingFileHandler = logging.handlers.RotatingFileHandler(filename =logfilepath,
                                                                   maxBytes = 1024 * 1024 * 50,
                                                                   backupCount = 5)
        # 设置输出格式
        formatter = logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S')
        rotatingFileHandler.setFormatter(formatter)
        # 控制台句柄
        console = logging.StreamHandler()
        console.setLevel(logging.NOTSET)
        console.setFormatter(formatter)
        # 添加内容到日志句柄中
        self.logger.addHandler(rotatingFileHandler)
        self.logger.addHandler(console)
        self.logger.setLevel(logging.NOTSET)
 
    def info(self, message):
        self.logger.info(message)
 
    def debug(self, message):
        self.logger.debug(message)
 
    def warning(self, message):
        self.logger.warning(message)
 
    def error(self, message):
        self.logger.error(message)

2.调用模块

创建另外一个py文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: zhangjun
# @Date  : 2018/7/26 9:21
# @Desc  : Description
import logging
logger = logging.getLogger(__name__)
import logutil2
 
if __name__ == '__main__':
    logger=logutil2.logs()
    logger.info("this is info")
    logger.debug("this is debug")
    logger.error("this is error")
    logger.warning("this is warning")

结果展示:

1.控制台输出

2.日志文件展示

创建目录

日志文件的写入

以上就是python 如何对logging日志封装的详细内容,更多关于python logging日志封装的资料请关注码农之家其它相关文章!

展开阅读

相关资源

  • Python自动化运维:技术与最佳实践

    Python自动化运维:技术与最佳实践

    这书在我国运维管理行业将有里程碑式的关键实际意义:不仅,它是中国第一本从纵、深和实践活动视角讨论Python在运维管理行业运用的经典著作;不仅这书的创作者是我国运维管理行业的超

    大小:150.4 MBPython

    立即下载
  • MongoDB运维实战

    MongoDB运维实战

    MongoDB自2009年推出以来,历经了近十年的发展,在这十年中,数据库领域可谓经历了翻天覆地的变化。本书深入剖析MongoDB新旧版本的特性,结合生产案例详细讲解MongoDB的常见故障

    大小:147 MBMongoDB

    立即下载
  • PaaS实现与运维管理:基于Mesos +Docker+ELK的实战指南

    PaaS实现与运维管理:基于Mesos +Docker+ELK的实战指南

    PaaS实现与运维管理 主要阐述了云计算中PaaS平台的实现与运维管理,分为四大部分,分别是概念模型、基础资源、平台实现与运维管理,共十五章。第一部分阐述了运维与开发之间的关系

    大小:174.1 MBPaaS

    立即下载
  • 系统运维全面解析:技术、管理与实践

    系统运维全面解析:技术、管理与实践

    本书由一线权威企业IT系统运维工程师撰写。书中总结了系统运维相关技术经验,针对运维管理、技术、经验进行归纳与演绎

    大小:111 MB系统运维

    立即下载
  • 凤凰项目:一个IT运维的传奇故事

    凤凰项目:一个IT运维的传奇故事

    它是1本罕见的IT类小说集,亚马逊美国用户点评734条,并且有诸多知名人士强烈推荐。本书叙述了一位IT主管Bill临危受命,在将来执行董事的协助和自身TheThreeWays核心理念的支撑点下,拯救施

    大小:2.4 MBIT运维

    立即下载

学习笔记

18小时54分钟前回答

python logging模块书写日志以及日志分割详解

本文范例是书写两个日志:错误日志(ERROR级别)和运行日志(DEBUG级别),其中运行日志每日凌晨进行分割 import logging,datetime,logging.handlersfrom 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,分别是秒、分、小时、天分……

5小时50分钟前回答

Python中logging日志记录到文件及自动分割的操作代码

日志作为项目开发和运行中必备组件,python提供了内置的logging模块来完成这个工作;借助 TimedRotatingFileHandler 可以按日期自动分割日志,自动保留日志文件数量等,下面是对日志的一个简单封装和测试。 import loggingimport osfrom logging import handlersclass Logger(object): # 日志级别关系映射 level_relations = { 'debug': logging.DEBUG, 'info': logging.INFO, 'warning': logging.WARNING, 'error': logging.ERROR, 'critical': logging.CRITICAL } def __init__(self, filename, level='info', when='D', back_count=3, fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'): f_dir, f_name = os.path.split(filename) os.makedirs(f_dir, exist_ok=True) # 当前目录新建log文件夹 self.logger = logging.getLog……

11小时14分钟前回答

python logging模块的使用详解

logging日志模块:是用来记录日志的模块,一般记录用户在软件中的操作 使用方法:模板直接拿来用,手动修改 # logging的配置信息(模板)import osimport logging.config# 定义三种日志输出格式 开始(模板,不用配置,直接拿来用)standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \ '[%(levelname)s][%(message)s]' # 其中name为get_logger中指定的名字simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'# 定义日志输出格式 结束# (*****)注意1: log文件的目录(手动修改)BASE_PATH = os.path.dirname(os.path.dirname(__file__)) # 获取项目路径logfile_dir = os.path.join……