python多线程logger_python多线程logger_Dblogger:一个Python语言实现支持多进程和多线程日志打印高效Python日志库......

日期作者版本备注2020-12-7dingbinv1.0

Dblogger: a powerful Python library supporting multi process and multi thread printing logs

Dblogger project implements a both multi-threads-safe and multi-process-safe logger library named dblogger in python language. It works well and has stable function and powerful performance,especially in multithreaded or multiprocessed Python programs.

Main interfaces of dblogger are implemented in file: smartlogger/utils.dblogger.py .

dblogger configuration file is: smartlogger/conf/logger.conf.

The dblogger configuration file has the following format:[loggers]

keys=root,SafeLogger

[handlers]

keys=consoleHandler,fileHandler,rotatingFileHandler,timedRotatingFileHandler,truncateTimedRotatingFileHandler

[formatters]

keys=fmt0

[logger_root]

level=INFO

handlers=consoleHandler

[logger_SafeLogger]

level=INFO

#handlers=consoleHandler,truncateTimedRotatingFileHandler

handlers=truncateTimedRotatingFileHandler

qualname=SafeLogger

propagate=0

[handler_consoleHandler]

class=StreamHandler

args=(sys.stdout,)

level=INFO

formatter=fmt0

[handler_fileHandler]

class=FileHandler

args=("logs/app.log", "a")

level=INFO

formatter=fmt0

[handler_rotatingFileHandler]

class=handlers.RotatingFileHandler

args=("logs/app.log", 'a',100*1024*1024, 100)

level=INFO

formatter=fmt0

[handler_timedRotatingFileHandler]

class=handlers.TimedRotatingFileHandler

args=("logs/app.log", 'm', 1, 3600)

level=INFO

formatter=fmt0

[handler_truncateTimedRotatingFileHandler]

class=smartlogger.utils.logutils.truncate_timed_rotating_filehandler.TruncateTimedRotatingFileHandler

args=("logs/app.log", 'm', 1, 3600)

level=INFO

formatter=fmt0

[formatter_fmt0]

format=[%(asctime)s] [%(msecs)d,process(%(process)d),thread(%(thread)d),%(filename)s:%(lineno)d -- %(funcName)s() %(levelname)s] [%(message)s]

datefmt=%Y-%m-%d %H:%M:%S

TruncateTimedRotatingFileHandler was so important that it implements the following features: every few minutes or hours, it generates the log file name with a specific meaning, and then outputs the log content to the log file with the corresponding name. It was a truncated time rotating file handler and it's so useful.

You can run dblogger demo examples like this:python -m smartlogger.loggerdemo.simpleloggerdemo

python -m smartlogger.utils.logutils.dbloggerdemo

Then you will see the rotating log files generated under directory: smartlogger/logs after run above demo commands. And the log file names may be like: app.log and app.log.2020-11-08_01-01 and so on.

See GitHub address: https://github.com/apollo008/dblogger for source code and details.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BIEE 目录迁移(文件夹)方式

文件夹迁移方式一(归档--取消归档): 归档:analytics中选择目录,定位至指定文件夹,更多中选择归档,保存为 .catalog文档; 释放归档: 进入目录管理器,离…

unityscrollview生成大量_superscrollviewforUGUI的一些使用心得

接触这个插件也有差不多半年了,这段时间都是跟这个插件做的UI打交道,所以记一下相关的使用心得做备忘。这个插件主要由三个脚本构成,分别是ListItemData(挂载在要展示的物体预制体身上的,物体对应的属性,初始化字段等均…

使用的组件:ckeditor

老牌Web文本编辑器,无需多言。 官网地址:http://ckeditor.com/转载于:https://www.cnblogs.com/xusweeter/p/6098942.html

mybatis 配置 mysql连接池_spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)...

项目目录结构1. 导入依赖创建 maven 工程,除了 Spring 的基本依赖外,还需要导入 Mybatis 和 Druid 的相关依赖:org.springframeworkgroupId>spring-jdbcartifactId>${spring-base-version}version>dependency>mysqlgroupId>my…

noi题库(noi.openjudge.cn) 1.8编程基础之多维数组T21——T25

T21 二维数组右上左下遍历 描述 给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组。 输入 输入的第一行上有两个整数,依次为row和col。余下有row行,每行包含col个整数&#…

mysql memcache redis_redis,mysql,memcache的區別與比較,redis兩種數據存儲持久化方式

redis與mysql比較區別:mysql中一個中小型的網絡數據庫,比oracle和sqlserver小, 但是並發能力遠超過acess這樣的桌面數據庫;redis是一個內存鍵值數據庫,支持網絡、可基於內存亦可持久化的日志型、Key-Value數據庫。redi…

Java学习笔记三——数据类型

前言 Java是强类型(strongly typed)语言,强类型包含两方面的含义: 所有的变量必须先声明后使用;指定类型的变量只能接受预支匹配的值。这意味着每一个变量和表达式都有一个在编译时就确定的类型。 Java数据类型分为两大…

word可以直接导入mysql嘛_如何把word文档导入到数据库中——java POI

本文方法借鉴于https://www.cnblogs.com/ljysy/p/10574197.html在经过朋友的指导下,在处理文档的方式上有所不同。我的数据库使用的是SQL server,这篇博客将不介绍如何将数据存储进数据库中,只进行java POI处理文档数据的介绍,在处…

metinfo mysql off_利用Sqlmap测试MetInfo企业网站管理系统MySql注入

上次叉叉讲了Sqlmap简单注入(access数据库)教程,这次咱说说MySql数据库MetInfo,是一款强大的企业网站管理系统,采用PHPMysql架构。叉叉下载的是MetInfo 5.1.5的免费版本,咱不是大拿,不会分析源码,直接丢到W…

IOS的七种手势

今天为大家介绍一下IOS 的七种手势,手势在开发中经常用到,所以就简单 通俗易懂的说下, 话不多说,直接看代码: // 初始化一个UIimageViewUIImageView *imageView [[UIImageView alloc]initWithFrame:CGRectMake(100, 1…

mysql获取后一天_mysql获取当前时间,前一天,后一天

今天是2016年08月01日。date_sub(2016-08-01,interval 1 day) 表示 2016-07-31date_sub(2016-08-01,interval 0 day) 表示 2016-08-01date_sub(2016-08-01,interval -1 day) 表示 2016-08-02date_sub(curdate(),interval 1 day) 表示 2016-07-31date_sub(curdate(),interval -1…

c++获取sqlite3数据库表中所有字段的方法

常用方法: 1.使用sqlite3_get_table函数 2.获取sqlite创建表的sql语句字符串,然后进行解析获取到相应的字段 3.采用配置文件的方式,将所有字段名写入配置文件 方法1:使用sqlite3_get_table函数 代码: char *dbname “…

python sql语句生成_python Django 生成sql语句

class TestModel(models.Model):Namemodels.CharField(max_length64,blankTrue)>>> from django.core.management.color import no_style#Style是用来输出语句时着色的>>> from django.db import connection>>> from django.db.backends import cre…

Oozie的架构

Oozie的架构图,如下: 从oozie的架构图中,可以看到所有的任务都是通过oozie生成相应的任务客户端,并通过任务客户端来提交相应的任务。 继续。。。 转载于:https://www.cnblogs.com/zlslch/p/6117705.html

mysql如何做计划任务_简单的mysql 过程计划任务

首先讲讲过程是什么东西, 过程差不多就是SQL用的java之于方法.把一段sql做成过程后一个简单的调用就可以批量执行这些sql,很方便.其实就像java后台写个执行复杂sql的方法,你只是把这段sql存到数据库里了而已.mysql里面有"过程"和"函数"两个概念, 基本上前者…

Linux的#和$区别

【#】代表 root权限【$】代表普通用户 如果更改了/etc/profile , 或~/.bashrc等文档,可以用任何符号来代替它们。 linux窗口下的【rootlocate~】其中的【~】代表代表用户的家目录(root为/root,一般user则为/home/username)&#x…

python贴吧顶贴_python实现贴吧顶贴机器人

项目目录:– url.txt:多个需要顶起的帖子地址。– reply:多条随机回复的内容。–selenium:浏览器自动化测试框架。首先,我们先使用pip完成selenium的安装。接着,导入pyautogui自动控制鼠标的库。示例代码:p…

Confluence部署攻略 [转]

一、软件介绍 AtlassianConfluence(简称Confluence)是一个专业的wiki程序。它是一个知识管理的工具,通过它可以实现团队成员之间的协作和知识共享。Confluence不是一个开源软件,非商业用途可以免费使用。 Confluence使用简单&…

对自己的忠告

人生的路上有许许多多的十字路口,迷茫、孤独、失败在所难免,不管自己再怎么改变,也不要忘记那个我。对自己的忠告。 难是多做的理由,而不是不做的理由。当你以为看透事情的本质,或许你只不过是盒子中的盒子。一路上&am…

arp欺骗技术

ARP欺骗技术-获取内网目标IP访问图片!简介:ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。要求: 虚拟机 Kali linux系统 1--命令…