首页 > 编程问答 >如何在 python 日志记录中插入换行符?

如何在 python 日志记录中插入换行符?

时间:2024-07-25 17:14:52浏览次数:12  
标签:python logging newline python-logging

import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s %(message)s', datefmt='%H:%M:%S')
logging.info('hello')
logging.warning('\n new hello')

11:15:01 INFO hello
11:16:49 WARNING
new hello

由于日志很拥挤,我想在 之前 asctime levelname 显式插入换行符。这是否可以在不修改 format 的情况下实现?

我查看了 logging 模块并用谷歌搜索了一下,但找不到可行的方法。


无法在不修改 format 的情况下在 logging.basicConfig 中添加换行符。

format 参数决定了日志消息的结构。如果想在 asctime levelname 之前添加换行符,则需要更新 format 字符串以包含这些换行符。

以下是如何操作的方法:

import logging

logging.basicConfig(level=logging.DEBUG, format='\n%(asctime)s \n%(levelname)s %(message)s', datefmt='%H:%M:%S')
logging.info('hello')
logging.warning('new hello')

这将产生以下输出:

11:15:01 
INFO hello

11:16:49 
WARNING new hello

如果不想修改根记录器的格式,始终可以为特定记录器创建 Formatter 并将其添加到 Handler 中。

import logging

# 创建一个格式化程序,在时间戳和级别名称之前添加换行符。
formatter = logging.Formatter('\n%(asctime)s\n%(levelname)s %(message)s', datefmt='%H:%M:%S')

# 创建一个处理程序并将格式化程序添加到其中。
handler = logging.StreamHandler()
handler.setFormatter(formatter)

# 创建一个记录器并将处理程序添加到其中。
logger = logging.getLogger(__name__)
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)

# 使用记录器记录消息。
logger.info('hello')
logger.warning('new hello')

此代码将产生与以前相同的输出,但它允许自定义特定记录器的格式,而无需更改全局根记录器格式。

标签:python,logging,newline,python-logging
From: 20111758

相关文章

  • 7:Python 变量类型
    Python 变量类型变量是存储在内存中的值,这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。变量赋值Python中的变量赋值不需要......
  • 如何诊断和修复 python .\app.py 不工作
    我在vscode中激活了我的虚拟环境。在激活我的环境的PowerShell中,我成功安装了Flask。然后我在文件main.py中运行此代码:fromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():return'Hello,World!'if__name__=="__main__":......
  • 【pywpsrpc/Python】改变图片宽高报错 对象无效属性: ‘tuple‘ object has no attrib
    概要开发UOS环境下,使用Python通过pywpsrpc库操作word文档在指定段落添加指定宽高的图片时意外发现的该问题,在原作者的github提问后获得解答后记录(源码地址、对应提问链接以及相关资料链接贴在文章末尾)。原因及解决方式首先贴一段简单的代码,作用是新建一个word文档并在其......
  • Python - 如何使用存储在类变量中的类型作为同一类方法的参数的类型提示?
    考虑下面的代码:fromtypingimportProtocol,ClassVar,AnyclassTool(Protocol):t:ClassVar#deff(self,params:self.t)->Any:#NameError:name'self'isnotdefineddeff(self,params)->Any:passclassSum:......
  • 从Python列表中提取值
    代码图片我只想从.dat文件中提取单个值,到目前为止,我已经成功提取了我想要的值,但我将各个字符串添加在一起。它非常笨重,所以寻找一种更平滑的方法,它只会给我行中的第一个值(-300)。谢谢代码:current_dir=os.getcwd()work_dir="\workDir"......
  • 如何从另一个 python 文件运行一个 python 文件
    我正在尝试从另一个python运行一个python文件,但是当涉及到调用另一个python文件中的方法时,它只会重新运行当前的python文件。我尝试了这段代码。我将导入放入log_user_in方法中,因为如果我将其导入到文件顶部,则会出现循环导入错误。这是我的代码片段fromtkinter......
  • 如何在Mac电脑上安装Python 2
    Python是一种高级编程语言,广泛应用于数据科学、网络开发、人工智能等领域。本文将介绍如何在Mac电脑上安装Python2,帮助初学者快速入门。一、下载Python2安装包在Python官网上下载Python2的安装包,网址为https://www.python.org/downloads/release/python-2718/ 。下载完......
  • 我的 python 抓取数据是空的,不确定我的代码出了什么问题
    我的结果是空的,不确定我的代码出了什么问题:这里是我的代码:#尝试从该网站获取数据https://www.watsons.com.sg/health/c/2100000?currentPage=1importrequestsfrombs4importBeautifulSoupimportpandasaspd#Settingdisplayoptionsforpandaspd.......
  • Chrome 浏览器更新后,我的 python tagui 代码工作不稳定。问题的解决方法是什么
    我编写了一个pythontagui脚本来在chrome中操作Intranet网页。它运行良好。但是在chrome浏览器更新后,脚本每次都会在某个时刻随机停止,并且也不会抛出错误。请帮忙。我尝试重新启动电脑,但这并没有解决问题。Chrome浏览器更新后,TagUI脚本工作不稳定的问题可能由以......
  • 如何从另一个文件运行 python 文件
    我正在尝试从另一个名为LoginOrReg的文件运行一个名为HabitTracker的python文件,但是当我这样做时,它会重新运行LoginOrReg文件。我已经尝试过这个classLoginOrReg:def__init__(self,db,cursor,login_username,data):self.db=mysql.connector.......