刚用Python log模块写了一个例子,记录一下。

import logging
import logging.handlers
import os
from datetime import datetime basedir=r'D:\log'
LOG_LEVEL = 0
resultPath = os.path.join(basedir,'result')
if not os.path.exists(resultPath):
os.mkdir(resultPath)
LOG_PATH = os.path.join(resultPath, str(datetime.now().strftime('%Y-%m-%d-%H-%M-%S')))
if not os.path.exists(LOG_PATH):
os.mkdir(LOG_PATH)
LOG_FILE_PATH = os.path.join(LOG_PATH, 'output.log')
LOG_MAX_SIZE = 10*1024*1024
LOG_BACKUP_COUNT = 5
FILE_LOG_LEVEL = 10
STREAM_LOG_LEVEL = 20 class LOG:
logger = None @staticmethod
def getLogger():
if LOG.logger is not None:
return LOG.logger
LOG.logger = logging.getLogger()
LOG.logger.setLevel(LOG_LEVEL)
Rthandler = logging.handlers.RotatingFileHandler(
LOG_FILE_PATH,
maxBytes=LOG_MAX_SIZE,
backupCount=LOG_BACKUP_COUNT,
encoding='utf-8',
)
StreamHandler = logging.StreamHandler()
formatter = logging.Formatter(
'%(asctime)s-[%(levelname)s][%(module)s][%(funcName)s]-%(message)s')
Rthandler.setFormatter(formatter)
StreamHandler.setFormatter(formatter)
Rthandler.setLevel(FILE_LOG_LEVEL)
StreamHandler.setLevel(STREAM_LOG_LEVEL)
LOG.logger.addHandler(Rthandler)
LOG.logger.addHandler(StreamHandler)
return LOG.logger log=LOG.getLogger()
log.info('log test')

Python log 模块介绍的更多相关文章

  1. Python之模块介绍

    模块介绍 模块,是用一些代码实现的某个功能的代码集合. 类似与函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用,提供了代码的重用性和代码间的耦合.对于一个复杂的功能,可能需要多个函 ...

  2. python multiprocessing模块 介绍

    一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进 ...

  3. Python day18模块介绍2(使用BASE_DIR修改临时path,os模块)

    1.BASE_DIR修改path(别人导入py项目时不会因为绝对路径无法解释) #sys修改环境变量 #使用BASE_DIR将绝对路径改为相对路径 import sys,os BASE_DIR=os. ...

  4. python常用模块介绍

    关于if __name__ == "__main__": 若执行文件为bin,调用文件为cal: 若在执行文件bin中执行print(__name__) 输出:__main__ 当 ...

  5. Python—time模块介绍

    time 模块 在平常的代码中,我们常常需要与时间打交道.在Python中,常用的与时间处理有关的模块就包括:time,datetime,下面来介绍time模块. 在开始之前,首先要说明几点: 一.在 ...

  6. Python Fileinput 模块介绍

    作者博文地址:http://www.cnblogs.com/spiritman/ fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行. [默 ...

  7. Python os模块介绍

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curd ...

  8. Python—sys模块介绍

    sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxi ...

  9. Python—os模块介绍

    OS模块 我们平时工作中很常用到的一个模块,通过os模块调用系统命令,获得路径,获取操作系统的类型等都是使用该模块.os 模块提供了很多允许你的程序与操作系统直接交互的功能 得到当前工作目录,即当前P ...

随机推荐

  1. odoo 二次开发的一些原理

    一:self是什么 目前新版的Odoo中使用到的self,是对  游标cr.用户ID.模型.上下文.记录集.缓存  的封装. 我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr. ...

  2. (转)Shell分析服务器日志

    一.目录 转载链接:https://mp.weixin.qq.com/s/W1ekSiHgbGInqQ9HmZaJDA 自己的小网站跑在阿里云的ECS上面,偶尔也去分析分析自己网站服务器日志,看看网站 ...

  3. c#操作mysql

    using System; using MySql.Data; using MySql.Data.MySqlClient; using System.Data; using System.Linq; ...

  4. java程序没有运行选项

    1.检查module是否正确 确保src为资源文件 2.检查是否有main函数

  5. vue项目element-ui框架中的弹窗中的表单验证清除问题

    问题回顾: 1.vue项目的在弹窗上的form表单验证,第一次点击新增时正常,第二次新增打开弹窗后由于表单内容为空,出现验证这种情况 2.为了解决上面的情况,在执行点击新增事件加上this.$refs ...

  6. linux的yum报错

    yum makecache Loaded plugins: fastestmirror Could not retrieve mirrorlist http://mirrorlist.centos.o ...

  7. scrapy parse()方法工作机制(转)

    1.因为使用的yield,而不是return.parse函数将会被当做一个生成器使用.scrapy会逐一获取parse方法中生成的结果,并判断该结果是一个什么样的类型: 2.如果是request则加入 ...

  8. mojing手柄遥杆控制

    using UnityEngine; using UnityEngine.UI; using System.Collections; using MojingSample.CrossPlatformI ...

  9. Sql数据库收缩 语句特别快

    数据库在收缩的时候..使用菜单 >> 任务 >> 收缩 >> 文件 >> 数据,  特别慢..还会报错失败.. 但使用脚本 USE [dbName] G ...

  10. C++下混合编译c语言方法总结

    最近在读SGI STL源码,感觉对C++的学习很有帮助,之前对于泛型.iterator.traits等等各种特性的概念非常模糊,通过这两天的琢磨,再加上<STL 源码剖析>的帮助,对C++ ...