文档章节

python log

inidcard
 inidcard
发布于 06/19 11:48
字数 412
阅读 5
收藏 0
点赞 0
评论 0

python log 处理方式

log_demo.py: 日志代码。

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "Q1mi"

"""
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]'

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,
            'datefmt': '%Y-%m-%d %H:%M:%S',
        },
        'simple': {
            'format': simple_format
        },
    },
    'filters': {},
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',  # 打印到屏幕
            'formatter': 'simple'
        },
        'default': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件
            'filename': logfile_path,  # 日志文件
            'maxBytes': 1024*1024*5,  # 日志大小 5M
            'backupCount': 5,
            'formatter': 'standard',
            'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
        },
    },
    'loggers': {
        '': {
            'handlers': ['default', 'console'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
            'level': 'DEBUG',
            'propagate': True,  # 向上(更高level的logger)传递
        },
    },
}
logging.config.dictConfig(LOGGING_DIC)  # 导入上面定义的配置
logger = logging.getLogger(__name__)  # 生成一个log实例
logger.info('It works!')  # 记录该文件的运行状态

log_test.py: 测试代码。

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "Q1mi"
# Email: master@liwenzhou.com

"""
MyLogging Test
"""

import time
import logging
from log_demo import my_logging  # 导入自定义的logging配置

logger = logging.getLogger(__file__)  # 生成logger实例


def demo():
    logger.debug("start range... time:{}".format(time.time()))
    logger.info("中文测试开始。。。")
    for i in range(10):
        logger.debug("i:{}".format(i))
        time.sleep(2)
    else:
        logger.debug("over range... time:{}".format(time.time()))
    logger.info("中文测试结束。。。")

if __name__ == "__main__":
    demo()

2018-06-19 11:46:02 星期二


© 著作权归作者所有

共有 人打赏支持
inidcard
粉丝 0
博文 91
码字总数 6801
作品 0
东城
程序员
Robot Framework+SSHLibrary实现自动化运维质量检测

Robot Framework+SSHLibrary介绍 首先,介绍一下robotframework,oschina这么介绍: Robot Framework 是一个关键词驱动的自动测试框架。测试用例位于HTML或者TSV(以tab分隔值)文件,使用在测...

超爱fitnesse
2015/02/10
0
0
Nginx+uWSGI+DJango+Python+ Mysql 搭建可靠的python web服务

本文出自:http://www.huxun360.com/view_blog/28 一、安装所需工具 yum -y install gcc gcc-c++ rpm-build mysql libtool-ltdl libtool automake autoconf libtool make setuptool 二、编译......

我的去哈哈
2014/03/28
0
0
Ubuntu部署python3-flask-nginx-uwsgi-supervisor完美

http://blog.51cto.com/jokerbug by:joker_bug 安装虚拟环境 把虚拟机环境添加环境变量中 为flask项目创建一个虚拟环境 安装mysql数据库,安装数据这个没什么好提的网上有很多详细教程 安装n...

joker_bug
2017/12/28
0
0
CentOS6.4下源代码安装openERP以及nginx配置

以前网上有个centos下的自动安装脚本,脚本本身应该是正确的,但是可能在多人转载后,中间有信息遗漏或者丢失,所以造成脚本失败,不能直接用 我把自己在CentOS下源代码安装OE以及与nginx整合...

小笔头
2013/07/07
0
1
CentOS6.4下源代码安装以及nginx配置

以前网上有个centos下的自动安装脚本,脚本本身应该是正确的,但是可能在多人转载后,中间有信息遗漏或者丢失,所以造成脚本失败,不能直接用 我把自己在CentOS下源代码安装OE以及与nginx整合...

北方攻城师
2014/11/23
0
0
删除超过1年数据完整python脚本

删除超过1年数据完整python脚本: vi aa.py #!/usr/bin/python import os import datetime import shutil dir="/aa" now = datetime.datetime.now() delta = datetime.timedelta(days=365) ......

yangzhimingg
06/12
0
0
使用Gunicorn部署 python应用程序

来源引用: https://www.digitalocean.com/community/tutorials/how-to-deploy-python-wsgi-apps-using-gunicorn-http-server-behind-nginx 关于 Gunicorn 和 Nginx Gunicorn Gunicorn is a......

greister
2015/08/05
0
1
使用Logging Handler自动上传Python程序日志到日志服务

想要日志上云,又不想修改程序代码? 或者不希望进行相对复杂的客户端部署?那么您需要使用Logging Handler,现在Python程序也支持了! 概述 使用Python SDK提供的Log Handler可以实现每一条P...

成喆
04/13
0
0
docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312
06/18
0
0
windows下安装设置Nginx+python+flup+django,并设为服务运行!

下载安装 主站 http://nginx.org/ 下载 http://nginx.org/en/download.html 下载稳定版 http://nginx.org/download/nginx-0.7.67.zip 书 http://nginx.org/en/docs/ 中文wiki http://wiki.ng......

岭南六少
2011/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ConcurrentLinkedQueue源码分析

前言 ConcurrentLinkedQueue是一个线程安全的队列,它采用的是 CAS 算法来进行实现,也就是说它是非阻塞的;队列中的元素按照 FIFO(先进先出)的原则对元素进行排列,此外,它是一个无界队列;...

tsmyk0715
5分钟前
0
0
String,StringBuffer ,StringBuilder的区别

不同点 一、基类不同 StringBuffer、StringBuilder 都继承自AbStractStringBuilder,String 直接继承自 Object 2、底层容器“不同” 虽然底层都是字符数组,但是String的是final修饰的不可变...

不开心的时候不要学习
17分钟前
0
0
nodejs 文件操作

写文件code // 加载文件模块var fs = require("fs");var content = 'Hello World, 你好世界!';//params 文件名,内容,编码,回调fs.writeFile('./hello.txt',content,'utf8',function (er......

yanhl
19分钟前
0
0
SpringBoot mybits 查询为0条数据 但是在Navicat 中可以查询到数据

1.页面请求: 数据库查询: 2018-07-16 17:56:25.054 DEBUG 17312 --- [nio-9010-exec-3] c.s.h.m.C.selectSelective : ==> Preparing: select id, card_number, customer_id, customer_nam......

kuchawyz
29分钟前
0
0
译:Self-Modifying cod 和cacheflush

date: 2014-11-26 09:53 翻译自: http://community.arm.com/groups/processors/blog/2010/02/17/caches-and-self-modifying-code Cache处在CPU核心与内存存储器之间,它给我们的感觉是,它具......

我叫半桶水
31分钟前
0
0
Artificial Intelligence Yourself

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流...

孟飞阳
44分钟前
0
0
press.one个人数字签名

这是我在press.one的数字签名 https://press.one/p/address/v?s=9d3d5b7ce019af357ab994775549e8f047a5b17fc9893364652fc67e4b95443b38ccb24c6655e0d252dd0154369eb9b7717c4ccf4e1835ca3596......

NateHuang
47分钟前
1
0
Oracle 中的 SQL 分页查询原理和方法详解

本文分析并介绍 Oracle 中的分页查找的方法。 Oracle 中的表,除了我们建表时设计的各个字段,其实还有两个字段(此处只介绍2个),分别是 ROWID(行标示符)和 ROWNUM(行号),即使我们使用...

举个_栗子
53分钟前
2
2
C++ iostream、iomanip 头文件详解

大家好,我是ChungZH!这是我的第二篇博客。在这篇博客中,我将介绍一些有关C++的iostream和iomanip库的知识,希望大家喜欢! 首先,我们来看看iostream。 相信大家都知道iostream,这个库可以...

ChungZH
今天
1
0
atom的摸索

atom中使用git 软件有提示,不赘述(软件的特色) 提供的只是些基础功能,我们需要伟大的开源伙伴来解决易用性问题 ,安装git plus插件,你就可以不用cli也可以在atom中畅快的使用git了 因为这玩意...

狮子狗
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部