-
关于python打印日志信息的坑
2019-05-15 15:11:14首先在网上找的都是一次性的不说,性能也不是很好,但是找到一个大神的日志信息 首先创建一个文件logcong.py """ logging配置 """ import os import logging.config # 定义三种日志输出格式 开始 standard_format...首先在网上找的都是一次性的不说,性能也不是很好,但是找到一个大神的日志信息
""" 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中
-
python打印什么意思_python打印日志,extra是什么意思
2020-12-13 11:06:08展开全部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日志打印两次_python如何打印日志
2020-12-10 12:51:19默认情况下,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如何打印_python如何打印日志
2020-11-30 06:38:17默认情况下,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:\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:使用指明的日期/时间格式。
-
python 打印模块_Python 日志打印模块
2021-01-14 21:35:011 logging模块简介logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只... -
python打印模块_Python 日志打印模块
2020-12-24 13:30:421 logging模块简介logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只... -
python日志打印两次_[已解决] Python logging 重复打印日志信息
2021-03-06 13:29:29问题描述问题代码如下:def get_logger(logger_name):"""得到日志对象"""logger = logging.getLogger(logger_name)logger.setLevel(logging.DEBUG)formatter = logging.Formatter('[ %(asctime)s ] - %(levelname)s ... -
python 程序停止打印日志_python logging日志模块
2021-01-04 06:57:55log日志Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍1. 日志级别日志一共分成5个等级,从低到高分别是:DEBUGINFOWARNINGERRORCRITICAL说明:DEBUG:详细的信息,通常只出现在诊断问... -
Python打印日志库(logging)
2020-06-19 23:28:50细节信息,仅当诊断问题时使用 INFO 确认程序按预期运行 WARNING 表明已经或即将发生的意外(例如:磁盘空间不足)。程序仍按预期进行 ERROR 由于严重的问题,程序的某些功能已经不能正常执行 ... -
Python优雅日志打印
2019-01-15 11:32:16traceback.format_exc()可以打印异常日志与其他日志信息做拼接。 有个更优雅的做法: Python 打日志有个关键字参数 exc_info=True, 会自动追加 Traceback,无需手动拼接 traceback.format_exc() ... -
python日志打印两次_Python日志打印重复问题
2020-12-10 12:51:20今天调试用例的脚本去调用封装好的日志模块(算是补充前面...出现了4个日志文件,里面内容也有重复,肯定不是我想要的结果,我想要的是这4条info按照执行顺序写入到一个文件中去接着分析:把所有信息先打印到一个文件... -
python读取日志错误信息_python之追溯函数调用及错误日志详细打印
2020-12-03 11:47:25一、函数调用追溯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... -
python重复打印一句话_[已解决] Python logging 重复打印日志信息
2020-12-06 06:53:11问题描述问题代码如下:def get_logger(logger_name):"""得到日志对象"""logger = logging.getLogger(logger_name)logger.setLevel(logging.DEBUG)formatter = logging.Formatter('[ %(asctime)s ] - %(levelname)s ... -
python打印全log日志_python logging模块打印log日志到文件和屏幕
2021-02-10 13:07:07一、logging的框架1、Loggers: 可供程序直接调用的接口,app通过调用提供的api来记录日志2、Handlers: 决定将日志记录分配至正确的目的地3、Filters:对日志信息进行过滤,提供更细粒度的日志是否输出的判断4、... -
python报错输出到日志_Python打印详细报错日志,获取报错信息位置行数
2020-12-12 14:39:16源于:功能类代码 – 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:00logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,... -
python 控制台打印的信息输入到日志文件
2021-02-03 08:17:54python 打印信息输入到日志文件 解决问题:普通的py文件中的print信息输入到指定路径下的日志文件 解决办法:文件头部加入sys声明,并加入一下代码 import sys log_path = '/home/logs/system.log' sys.stdout = ... -
python 添加打印自身的日志信息
2019-09-23 09:58:23添加日志信息 代码如下: # coding=utf-8import loggingimport osimport timedef my_log(name): logger = logging.getLogger() logger.setLevel(logging.INFO) # Log等级总开关 # logger.setLevel(logging.DEBUG) ... -
Python打印详细报错日志,获取报错信息位置行数
2020-02-10 00:23:21源于: 功能类代码 – ...# 日志模块 import logging import traceback # 引入日志 logging.basicConfig(filename='log_record.txt', level=logging.DEBUG, filemode='w', format='[%(asctime)s] [%(levelnam... -
python 中文日志打印错误处理
2019-02-13 09:58:49错误信息: UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-34: ordinal not in range(128) 解决:指定encoding # 创建一个handler,用于写入日志文件 fh = logging.FileHandler... -
python 日志打印模块,输出时间、文件名、行号信息等
2020-02-29 12:48:30可以添加更多的日志信息,比如时间、行号、文件信息统一输出;可以通过 setLevel 来统一控制日志的开启与关闭。 下面是参考代码: #!/usr/bin/env python # -*-coding:UTF-8-*- import logging logg... -
python脚本打印日志_Java调用python脚本,脚本日志如何输入到日志文件中?如何实时获取脚本日志?...
2020-12-10 12:52:00问 题Java调用python脚本...2、Java调用python脚本,只会在脚本执行结束后才可以一次性获取脚本日志信息,怎么实现实时获取脚本执行日志?相关代码和脚本终端直接执行,会生成日志文件python /tmp/pytest.py >... -
Python示例代码之打印日志文件
2018-12-22 16:09:52在应用程序中,日志打印是个必不可少的模块,本文演示了一个简单的log日志文件打印的模型,在不考虑效率的场景中,可以使用该模块打印日志信息。 日志的打印格式可以描述如下: 日志类型一般包含如下四种类型... -
linux 运行python文件并且打印日志
2021-03-25 16:50:18场景:Python程序执行需要很长的时间或者需要一直在跑,或者需要打印并记录很多信息 策略:后台运行程序,然后把打印信息保存在指定的文件中,等程序运行结束后,再检查输出日志或者实时观察日志。 1、启动命令: ... -
python 打印log文件_Python中使用logging模块打印log日志详解
2020-11-29 14:37:26学一门新技术或者新语言,我们都要首先学会如何去适应这们新技术,其中在适应过程中,我们必须得学习如何调试程序并打出相应的log信息来,正所谓“只要log打的好,没有bug解不了”,在我们熟知的一些信息技术中,log... -
linux执行python命令后没有反应,不打印日志信息
2019-01-29 17:34:00实际的python执行的软连接是路径是/opt/python2.7/bin/python,而设置的软连接错误如下: 修改该连接,是python指向/opt/python2.7/bin/python, lrwxrwxrwx.1rootroot25Jan2916:53python->/opt/python2.7/...