精华内容
下载资源
问答
  • 关于python打印日志信息的坑

    千次阅读 2019-05-15 15:11:14
    首先在网上找的都是一次性的不说,性能也不是很好,但是找到一个大神的日志信息 首先创建一个文件logcong.py """ logging配置 """ import os import logging.config # 定义三种日志输出格式 开始 standard_format...

    首先在网上找的都是一次性的不说,性能也不是很好,但是找到一个大神的日志信息

    首先创建一个文件logcong.py

    """
    logging配置
    """
    
    import os
    import logging.config
    
    # 定义三种日志输出格式 开始
    
    standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
                      '[%(levelname)s][%(message)s]' #其中name为getlogger指定的名字
    
    simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
    
    id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'
    
    # 定义日志输出格式 结束
    
    logfile_dir = os.path.dirname(os.path.abspath(__file__))  # log文件的目录
    
    logfile_name = 'all2.log'  # log文件名
    
    # 如果不存在定义的日志目录就创建一个
    if not os.path.isdir(logfile_dir):
        os.mkdir(logfile_dir)
    
    # log文件的全路径
    logfile_path = os.path.join(logfile_dir, logfile_name)
    
    # log配置字典
    LOGGING_DIC = {
        'version': 1,
        'disable_existing_loggers': False,
        'formatters': {
            'standard': {
                'format': standard_format
            },
            'simple': {
                'format': simple_format
            },
        },
        'filters': {},
        'handlers': {
            # 打印到终端的日志
            'console': {
                'level': 'DEBUG',
                'class': 'logging.StreamHandler',  # 打印到屏幕
                'formatter': 'simple'
            },
            #打印到文件的日志,收集info及以上的日志
            'default': {
                'level': 'DEBUG',
                'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件
                'formatter': 'standard',
                'filename': "/Users/cjw/Desktop/zhongshihua/log/log.txt",  # 日志文件
                'maxBytes': 1024*1024*5,  # 日志大小 5M
                'backupCount': 5,
                'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
            },
        },
        'loggers': {
            #logging.getLogger(__name__)拿到的logger配置
            '': {
                'handlers': ['default', 'console'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
                'level': 'DEBUG',
                'propagate': True,  # 向上(更高level的logger)传递
            },
        },
    }
    
    #
    # def load_my_logging_cfg():
    #     logging.config.dictConfig(LOGGING_DIC)  # 导入上面定义的logging配置
    #     logger = logging.getLogger(__name__)  # 生成一个log实例
    #     logger.info('It works!')  # 记录该文件的运行状态
    #
    # if __name__ == '__main__':
    #     load_my_logging_cfg()
    
    import logging.config
    from logconf import LOGGING_DIC
    logging.config.dictConfig(LOGGING_DIC)
    logger = logging.getLogger(__name__)
    logger.info("123")
    

    会在你logconf统计文件创建一个log文件夹,并且日志都保存在log.txt中

    展开全文
  • 展开全部extra是用户...extra可以用来传递额外的日志信息,尤其是上下32313133353236313431303231363533e78988e69d8331333339656531文信息。例如:FORMAT='%(asctime)-15s%(clientip)s%(user)-8s%(message)s'log...

    展开全部

    extra是用户自定义的dict. 这些key/value在格式化的时候可以直接引用。

    extra可以用来传递额外的日志信息,尤其是上下32313133353236313431303231363533e78988e69d8331333339656531文信息。

    例如:FORMAT = '%(asctime)-15s %(clientip)s %(user)-8s %(message)s'

    logging.basicConfig(format=FORMAT)

    d = { 'clientip' : '192.168.0.1', 'user' : 'fbloggs' }

    logger = logging.getLogger('tcpserver')

    logger.warning('Protocol problem: %s', 'connection reset', extra=d)

    这里除了protocol错误描述外,还附加了客户IP和用户名信息。

    如果配置了一些非文本格式的handler,结构化的数据会更容易存储和查询。

    例如,Sentry的logging handler允许用户用extra.data来传递任意信息,并自动记录到web界面。logger.error('There was some crazy error', exc_info=True, extra={

    'culprit': 'my.view.name',

    'fingerprint': [...],

    'data': {

    # You may specify any values here and Sentry will log and output them

    'username': request.user.username,

    }

    })

    展开全文
  • 默认情况下,python使用logging模块将日志打印到屏幕上(stdout),日志级别为WARNING(即只有日志级别高于WARNING的日志信息才会输出),日志格式如下图所示:简单使用#!/usr/local/bin/python#-*-coding:utf-8-*-...

    默认情况下,python使用logging模块将日志打印到屏幕上(stdout),日志级别为WARNING(即只有日志级别高于WARNING的日志信息才会输出),日志格式如下图所示:

    简单使用#!/usr/local/bin/python# -*- coding:utf-8 -*-import logging

    logging.debug('debug message')

    logging.info('info message')

    logging.warn('warn message')

    logging.error('error message')

    logging.critical('critical message')

    输出WARNING:root:warn message

    ERROR:root:error message

    CRITICAL:root:critical message

    通过logging.basicConfig函数对日志的输出格式及方式做相关配置。logging.basicConfig(**kwargs) 该函数必须在main函数线程除外的子线程启动之前调用,否则可能会造成日志重复记录import logging

    fmt = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s'

    logging.basicConfig(level=logging.DEBUG,

    format=fmt,

    filename='D:Pythonlogs.txt',

    filemode='w',

    datefmt='%a, %d %b %Y %H:%M:%S'

    )

    logging.debug('this is a debug level message')

    logging.info("this is a info level message")

    logging.warning("this is a warning level message")

    logging.error("this is a error level message")

    logging.critical("this is a critical level message")

    filename:创建一个FileHandler,使用指定的文件名,而不是使用StreamHandler。

    filemode:如果指明了文件名,指明打开文件的模式(如果没有指明filemode,默认为'a')。

    format:handler使用指明的格式化字符串。

    datefmt:使用指明的日期/时间格式。

    展开全文
  • 默认情况下,python使用logging模块将日志打印到屏幕上(stdout),日志级别为WARNING(即只有日志级别高于WARNING的日志信息才会输出),日志格式如下图所示:简单使用#!/usr/local/bin/python# -*- coding:utf-8 -*-...

    5d633bc07acf2469.jpg

    默认情况下,python使用logging模块将日志打印到屏幕上(stdout),日志级别为WARNING(即只有日志级别高于WARNING的日志信息才会输出),日志格式如下图所示:

    1566784422605605.png

    简单使用#!/usr/local/bin/python# -*- coding:utf-8 -*-import logging

    logging.debug('debug message')

    logging.info('info message')

    logging.warn('warn message')

    logging.error('error message')

    logging.critical('critical message')

    输出WARNING:root:warn message

    ERROR:root:error message

    CRITICAL:root:critical message

    通过logging.basicConfig函数对日志的输出格式及方式做相关配置。logging.basicConfig(**kwargs) 该函数必须在main函数线程除外的子线程启动之前调用,否则可能会造成日志重复记录import logging

    fmt = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s'

    logging.basicConfig(level=logging.DEBUG,

    format=fmt,

    filename='D:\Python\logs.txt',

    filemode='w',

    datefmt='%a, %d %b %Y %H:%M:%S'

    )

    logging.debug('this is a debug level message')

    logging.info("this is a info level message")

    logging.warning("this is a warning level message")

    logging.error("this is a error level message")

    logging.critical("this is a critical level message")

    filename:创建一个FileHandler,使用指定的文件名,而不是使用StreamHandler。

    filemode:如果指明了文件名,指明打开文件的模式(如果没有指明filemode,默认为'a')。

    format:handler使用指明的格式化字符串。

    datefmt:使用指明的日期/时间格式。

    展开全文
  • 1 logging模块简介logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只...
  • 1 logging模块简介logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只...
  • 问题描述问题代码如下:def get_logger(logger_name):"""得到日志对象"""logger = logging.getLogger(logger_name)logger.setLevel(logging.DEBUG)formatter = logging.Formatter('[ %(asctime)s ] - %(levelname)s ...
  • log日志Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍1. 日志级别日志一共分成5个等级,从低到高分别是:DEBUGINFOWARNINGERRORCRITICAL说明:DEBUG:详细的信息,通常只出现在诊断问...
  • 细节信息,仅当诊断问题时使用 INFO 确认程序按预期运行 WARNING 表明已经或即将发生的意外(例如:磁盘空间不足)。程序仍按预期进行 ERROR 由于严重的问题,程序的某些功能已经不能正常执行 ...
  • Python优雅日志打印

    2019-01-15 11:32:16
    traceback.format_exc()可以打印异常日志与其他日志信息做拼接。 有个更优雅的做法: Python 打日志有个关键字参数 exc_info=True, 会自动追加 Traceback,无需手动拼接 traceback.format_exc() ...
  • 今天调试用例的脚本去调用封装好的日志模块(算是补充前面...出现了4个日志文件,里面内容也有重复,肯定不是我想要的结果,我想要的是这4条info按照执行顺序写入到一个文件中去接着分析:把所有信息打印到一个文件...
  • 一、函数调用追溯1.1 原因在打印日志时,为实现日志分层打印,将打印日志的语句封装到了print_log_info以及print_log_error中。但是如果在上述函数中直接通过logger.*打印日志,日志中的模块名、行号就会一直打印...
  • python 异常日志打印

    2019-12-31 14:14:50
    异常日志打印: import logging logger = logging.getLogger(__name__) # 异常信息打印 def except_info(ex, params=None): import sys reload(sys) sys.setdefaultencoding('utf-8') exc_type, exc...
  • 问题描述问题代码如下:def get_logger(logger_name):"""得到日志对象"""logger = logging.getLogger(logger_name)logger.setLevel(logging.DEBUG)formatter = logging.Formatter('[ %(asctime)s ] - %(levelname)s ...
  • 一、logging的框架1、Loggers: 可供程序直接调用的接口,app通过调用提供的api来记录日志2、Handlers: 决定将日志记录分配至正确的目的地3、Filters:对日志信息进行过滤,提供更细粒度的日志是否输出的判断4、...
  • 源于:功能类代码 – Logsetclass.py网上代码1:# 日志模块import loggingimport traceback# 引入日志logging.basicConfig(filename='log_record.txt',level=logging.DEBUG, filemode='w', format='[%(asctime)s] [%...
  • Python 日志打印模块

    2018-08-16 11:08:00
    logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,...
  • python 打印信息输入到日志文件 解决问题:普通的py文件中的print信息输入到指定路径下的日志文件 解决办法:文件头部加入sys声明,并加入一下代码 import sys log_path = '/home/logs/system.log' sys.stdout = ...
  • 添加日志信息 代码如下: # coding=utf-8import loggingimport osimport timedef my_log(name): logger = logging.getLogger() logger.setLevel(logging.INFO) # Log等级总开关 # logger.setLevel(logging.DEBUG) ...
  • 源于: 功能类代码 – ...# 日志模块 import logging import traceback # 引入日志 logging.basicConfig(filename='log_record.txt', level=logging.DEBUG, filemode='w', format='[%(asctime)s] [%(levelnam...
  • 错误信息: UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-34: ordinal not in range(128) 解决:指定encoding # 创建一个handler,用于写入日志文件 fh = logging.FileHandler...
  • 可以添加更多的日志信息,比如时间、行号、文件信息统一输出;可以通过 setLevel 来统一控制日志的开启与关闭。 下面是参考代码: #!/usr/bin/env python # -*-coding:UTF-8-*- import logging logg...
  • 问 题Java调用python脚本...2、Java调用python脚本,只会在脚本执行结束后才可以一次性获取脚本日志信息,怎么实现实时获取脚本执行日志?相关代码和脚本终端直接执行,会生成日志文件python /tmp/pytest.py >...
  • 在应用程序中,日志打印是个必不可少的模块,本文演示了一个简单的log日志文件打印的模型,在不考虑效率的场景中,可以使用该模块打印日志信息。 日志的打印格式可以描述如下: 日志类型一般包含如下四种类型...
  • 场景:Python程序执行需要很长的时间或者需要一直在跑,或者需要打印并记录很多信息 策略:后台运行程序,然后把打印信息保存在指定的文件中,等程序运行结束后,再检查输出日志或者实时观察日志。 1、启动命令: ...
  • 学一门新技术或者新语言,我们都要首先学会如何去适应这们新技术,其中在适应过程中,我们必须得学习如何调试程序并打出相应的log信息来,正所谓“只要log打的好,没有bug解不了”,在我们熟知的一些信息技术中,log...
  • 实际的python执行的软连接是路径是/opt/python2.7/bin/python,而设置的软连接错误如下: 修改该连接,是python指向/opt/python2.7/bin/python, lrwxrwxrwx.1rootroot25Jan2916:53python->/opt/python2.7/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 485
精华内容 194
关键字:

python打印日志信息

python 订阅