关键代码

调用方:

 from Logger import MyLogger
import logging
import sys, os def getLogger():
# get the file name
fileUrl = sys.argv[0]
filepath, tmpfilename = os.path.split(fileUrl)
shotname, extension = os.path.splitext(tmpfilename) # get the logger object
logger = MyLogger(logname='log.txt', loglevel=1, logger=shotname).getlog()
return logger logger =getLogger()
logger.debug("Hoory, show!")

Logger.py

 #开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件
import logging class MyLogger():
format_dict = {
1 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'),
2 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'),
3 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'),
4 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'),
5 : logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
} def __init__(self, logname, loglevel, logger):
'''
指定保存日志的文件路径,日志级别,以及调用文件
将日志存入到指定的文件中
''' # 创建一个logger
self.logger = logging.getLogger(logger)
self.logger.setLevel(logging.DEBUG) # 创建一个handler,用于写入日志文件
fh = logging.FileHandler(logname)
fh.setLevel(logging.DEBUG) # 再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG) # 定义handler的输出格式
formatter = logging.Formatter('%(asctime)s %(name)s %(thread)d %(levelname)s %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter) # only first time need to add the handler
if(self.logger.hasHandlers() == False):
self.logger.addHandler(fh)
self.logger.addHandler(ch) def getlog(self):
return self.logger

Logger相关属性

可以通过下面的代码来进行设置(基本上不需要这么设置,因为通过getlogger()获取的logger对象并没有集成root的相关配置):

 logging.basicConfig(filename="log2.txt", level=logging.WARNING)

关于format

Python的log的更多相关文章

  1. python分析log

    最近做的一个项目,系统log下会生成如下的log(部分): [-- ::] Processing File transfer configured from ship to shore.... [-- ...

  2. python实时处理log文件脚本

    这个Python脚本是用来对实时文件的内容监控,比如 Error 或者 time out 字段都可以进行自定义:算是我的第一个真正的Python脚本,自己感觉还是比较臃肿,不过打算放到blog上记录一 ...

  3. 利用python 提取log 文件里的关键句子,并进行统计分析

    利用python开发了一个提取sim.log 中的各个关键步骤中的时间并进行统计的程序: #!/usr/bin/python2.6 import re,datetime file_name='/hom ...

  4. python之log

    #!/usr/bin/python # -*- coding: UTF- -*- ''' ''' import logging # 设置输出文件.文件格式和日志级别 logging.basicConf ...

  5. python打印log重复问题

    本博客转载于:http://www.cnblogs.com/huang-yc/p/9209096.html,写得真不错 浅析python日志重复输出问题 目录 问题起源: 问题解析 解决办法 1.改名 ...

  6. Python之log的处理方式

    配置文件: #! /usr/bin/env python # -*- coding: utf-8 -*- """ logging配置 """ ...

  7. Python Django log日志

    log日志 log开发日志 一.创建项目 1.python -m venv ll_env # 创建虚拟环境 2.source ll_env/bin/activate # 激活虚拟环境 3.pip in ...

  8. python运用 - log信息提取(知识: 遍历 | os )

    运用到的python知识点: excel相关:https://www.cnblogs.com/yaner2018/p/11269873.html 字典: python字典的几种方式: 1)key值遍历 ...

  9. caffe中accuracy和loss用python从log日志里面获取

    import re import pylab as pl import numpy as np if __name__=="__main__": accuracys=[] loss ...

  10. python 读取 log日志的编码问题

    1.我要读取log日志的”执行成功”的个数,log日志编码格式为GBK 2.显示报错,大致意思是说utf-8的代码不能解析log日志 3.后来想想把log日志用GBK编码读出来,写到新文件中,用utf ...

随机推荐

  1. 关于TCP/IP

    一.网络模型 计算机网络的两种模型:OSI 模型和 TCP/IP 模型 由于 OSI 模型过于复杂难以实现,导致 TCP/IP 模型更早地应用在现实中,这也使得 TCP/IP 模型成为标准 在 OSI ...

  2. pid 控制

    static std::map<pid_t, TTask *> Tasks; TError TTask::Fork(bool detach) { PORTO_ASSERT(!PostFor ...

  3. 【转】Linux虚拟网络基础——tap

    原文:https://blog.csdn.net/chengqiuming/article/details/80071073 ------------------------------------- ...

  4. PyQt5中的窗口显示控制

    setWindowState(state) #设置窗口状态 Qt.WindowNoState 无状态-正常状态 Qt.WindowMinimized 最小化 Qt.WindowMaximized 最大 ...

  5. iOS GPU、cpu、显示器的协作

    在 iOS 系统中,图像内容展示到屏幕的过程需要 CPU 和 GPU 共同参与. CPU 负责计算显示内容,比如视图的创建.布局计算.图片解码.文本绘制等. 随后 CPU 会将计算好的内容提交到 GP ...

  6. React Hook Flow Diagram

    一.概述 Donovon has created this nice flowchart that explains the new lifecycle of a Hooks component. C ...

  7. 命令行创建react.js项目

    npm install -g create-react-app  /*搭建一个全局的脚手架*/ create-react-app my-demo        /*创建项目 my-demo是项目名字* ...

  8. count to any

    A small computer game, puzzle, decryption

  9. Subband Decomposition

    子带分解. 例如语音信号是宽带信号,根据奈奎斯特采样定理,采样率为16kHz的语音信号的有效带宽是8KHz,不论是对于降噪,aec,vad,波束形成亦或是logfbank特征提取,我们都期望更精细的处 ...

  10. webpack打包vue单文件组件

    一.vue单文件组件 ①文件扩展名为 .vue 的 就是single-file components(单文件组件) ②参考文档:单文件组件 二.webpack加载第三方包 ①项目中,如果需要用到一些第 ...