学习python语言-----logging模块(转 记录与学习)

一、灵活配置日志输出

import logging
logging.basicConfig(level=logging.DEBUG,
                    format=‘%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s‘,
                    datefmt=‘%a, %d %b %Y %H:%M:%S‘,
                    filename=‘/tmp/test.log‘,  #若无此项,则默认输出于控制台
                    filemode=‘w‘)  #w用于刷新纪录,a用于增加记录,默认为a
  #5个日志记录级别
logging.debug(‘debug message‘)
logging.info(‘info message‘)
logging.warning(‘warning message‘)
logging.error(‘error message‘)
logging.critical(‘critical message‘)

二、使用logger对象

import logging

logger = logging.getLogger()
# 创建一个handler,用于写入日志文件
fh = logging.FileHandler(‘test.log‘)

# 再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()

formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)

fh.setFormatter(formatter)
ch.setFormatter(formatter)

logger.addHandler(fh) #logger对象可以添加多个fh和ch对象
logger.addHandler(ch)

logger.debug(‘logger debug message‘)
logger.info(‘logger info message‘)
logger.warning(‘logger warning message‘)
logger.error(‘logger error message‘)
logger.critical(‘logger critical message‘)

二、应用logger,创建一个封装好了的函数

import os
import time
import logging
from config import settings

def get_logger(card_num, struct_time):

    if struct_time.tm_mday < 23:
        file_name = "%s_%s_%d" %(struct_time.tm_year, struct_time.tm_mon, 22)
    else:
        file_name = "%s_%s_%d" %(struct_time.tm_year, struct_time.tm_mon+1, 22)

    file_handler = logging.FileHandler(
        os.path.join(settings.USER_DIR_FOLDER, card_num, ‘record‘, file_name),
        encoding=‘utf-8‘
    )
    fmt = logging.Formatter(fmt="%(asctime)s :  %(message)s")
    file_handler.setFormatter(fmt)

    logger1 = logging.Logger(‘user_logger‘, level=logging.INFO)
    logger1.addHandler(file_handler)
    return logger1

可以直接进行调用,这个针对的是银行日志记录

logger  =  get_logger()

logger.info(‘spend %s $‘%52)

原文地址:https://www.cnblogs.com/yujin123456/p/9664518.html

时间: 2024-10-20 09:51:40

学习python语言-----logging模块(转 记录与学习)的相关文章

python的logging模块,记录所发生的异常。

import logging import os import time def logger(user_name):     "日志功能模块"     logger = logging.getLogger(user_name)     logger.setLevel(logging.DEBUG)     log_file = '/tmp/tj' now_minute = time.strftime("%Y%m%d%H%M",time.localtime()) ag

没有任何编程基础可以直接学习python语言吗?学会后能够做什么?

很明确的说 python非常适合没有任何编程基础的人入门.. 目前应用最多的:全栈开发.数据分析.运维开发,今天我们就以这三个重点的岗位来做一下自学Python的规划,希望你在学之前就能有结果的来走得更远. 很多人在问,python学了之后能做些什么? 既然你没有碰过 Python ,不知编程为何物的人,我就不提编程里面的项目名了--创一个小群,供大家学习交流聊天如果有对学python方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学python能够持之以

[Python 多线程] logging模块、Logger类 (八)

logging模块: 标准库里面的logging模块,在前面学习线程安全时曾用来解决print被打断的问题,这里会介绍logging模块的功能. logging模块是线程安全的,不需要客户做任何特殊的工作.它通过使用线程锁实现了这一点; 有一个锁来序列化访问模块的共享数据,每个处理程序还创建一个锁来序列化访问其底层 I/O. 日志记录级别: 级别 数值 CRITICAL 50 ERROR 40 WARNING 30,默认 INFO 20 DEBUG 10 NOTSET 0 定义的记录级别越低,信

python之logging模块的使用

python的logging模块是用来写日志的,是python的标准模块. logging的结构 查看logging的python源码,可知主要有四个类实现功能: Loggers:提供应用程序直接使用的接口,如相关的配置设置: Handlers:将Loggers产生的日志传到指定位置,设置日志保存的位置: Filters:对输出日志进行过滤操作: Formatters:控制日志的输出格式: 日志记录的级别 DEBUG:优先级10,记录调试的详细信息,只在调试时开启: INFO:优先级20,记录普

Python基础-----logging模块

#!/usr/bin/env python#-*- coding:utf-8 -*- ########################################################################################################################################################灵活配置日志级别,日志格式,输出位置#####################################

python使用logging模块方法 教程

logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息:print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据:logging则可以由开发者决定将信息输出到什么地方,以及怎么输出: logging模块的日志级别 logging模块默认定义了以下几个日志等级,它允许开发人员自定义其他日

Python中logging模块的基本用法

在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 怎样进行日志记录相关配置 日志记录使用常见误区 下面我们来梳理一下整个演讲的过程,其实其核心就是介绍了 logging 模块的使用方法和一些配置. 日志记录的重要性 在开发过程中,如果程序运行出现了问题,我们是可以使用我们自己的 Debug 工具来检测到到底是哪一步出现了问题,如果出现了问题的话,

python中logging模块的一些简单用法

用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所以Python引入了logging模块来记录我想要的信息.print也可以输入日志,logging相对print来说更好控制输出在哪个地方,怎么输出及控制消息级别来过滤掉那些不需要的信息. 1.日志级别 import logging # 引入logging模块 # 将信息打印到控制台上 loggin

python的logging模块

1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message') 屏幕上打印: WARNING:root:Thisis warning message 默认情况下,logging将日志打印到屏幕,日志级别为WARNING: 日志级别大小关系为:CRITICAL > ER