一个轻量级的structlog处理器,用于取整浮点数以获得更漂亮的日志记录。

structlog-round的Python项目详细描述


Python CI

圆木结构

一个简单而轻量级的^{}处理器,用于取整浮点数以获得更漂亮的日志记录。在

您是否在Python程序中使用structlog来实现方便、结构化的日志记录? 日志浮动很容易通过许多浮点数字膨胀您的日志? structlog-round取整你的浮动以获得更漂亮的日志记录,但是你可以在你的程序中保持完整的浮点精度。在

例如:

log.msg("Hello world",a=1/3,b=2/3,ab_list=[1/3,2/3])# without structlog-round: prints long and ugly floats# 2020-07-16 21:48.21 Hello world        a=0.3333333333333333 b=0.6666666666666666 ab_list=[0.3333333333333333, 0.6666666666666666]# with structlog-round: floats are logged nicely rounded# 2020-07-16 21:48.21 Hello world        a=0.333 b=0.667 ab_list=[0.333, 0.667]

structlog-round允许您配置浮点的取整方式,还支持(嵌套)列表、dict或numpy数组中的取整浮点。在

安装

^{pr2}$

或用于发展:

git clone git@github.com:stefanbschneider/structlog-round.git
python setup.py install
# dependencies for testing
pip install -e .[dev]

使用

importstructlogimportstructlog_roundstructlog.configure(processors=[# importing and adding FloatRounder to your list of processors is all you have to dostructlog_round.FloatRounder(digits=3),structlog.dev.ConsoleRenderer()])log=structlog.get_logger()a=1/3b=2/3log.msg("Hello world",a=a,b=b)# this log is easily readable with short, rounded floats# Hello world                    a=0.333 b=0.667print(a,b)# the floats are still available in full precision and unrounded# 0.3333333333333333 0.6666666666666666

FloatRounder具有以下配置选项:

  • digits:要舍入到的位数
  • only_fields:只列出应舍入的字段
  • not_fields:不应舍入的字段列表
  • np_array_to_list(bool):是否将numpy数组强制转换为列表和圆形浮点数,以便更好地记录日志

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
尝试执行abox SWRL API命令时发生java错误   java Hibernate对象状态   java如何使用Spring从JSON获取相关对象?   安卓获取文件的最后修改日期而不是Java中的最后创建日期   java如何在旧JDK版本和新JDK版本之间切换,以及在这种情况下如何设置系统变量值?   java将按钮OnClick与RecyclerView in Fragment中的行OnClick分开   具有高级接口的java DynamoDB扫描   在Java中从静态成员调用非静态方法   mockito junit未涵盖接口中的java方法   java Eclipse包不存在   java Ebean模型将自身映射到@OneToMany   使用java将刮取的数据从网页存储到json对象   多线程Java GUI未更改