热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

logger库

#https:www.cnblogs.comnancyzhup8551506.htmlimportosimporttimeimportloggingPATHlambdap:os

# https://www.cnblogs.com/nancyzhu/p/8551506.htmlimport os
import time
import loggingPATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p))# 创建 log_path
now = time.strftime('%Y%m%d%H%M%S') # 返回当前时间
log_path = PATH('../log') # 当前文件拼接/log
if not os.path.exists(log_path): # 判断是否存在os.mkdir(log_path) # 创建文件class Log(object):"""定义日志类"""def __init__(self, _name):"""初始化logger:param _name: 写每条log的名字"""# 构建日志self.logger = logging.getLogger(_name) # 初始化self.logger.setLevel(logging.DEBUG) # 设置日志级别# 创建一个日志文件处理程序fh = logging.FileHandler(os.path.join(log_path, now + '.log'), encoding='utf-8') # 用于向一个文件输出日志信息# 设置log file的具体级别# fh.setLevel(logging.INFO)# 创建一个日志终端处理程序ch = logging.StreamHandler() # 向控制台输出日志信息# 设置log terminal的具体级别# ch.setLevel(logging.INFO)# 定义日志输出格式formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # 设置日志输出 时间、日志名、文本形式的日志、用户输出的消息fh.setFormatter(formatter) # setFormatter()为该处理器选择一个格式化器ch.setFormatter(formatter)# 日志添加程序处理功能self.logger.addHandler(fh)self.logger.addHandler(ch)def get_log(self):"""return logger:return:"""return self.loggerif __name__ == '__main__':logger = Log('lidi').get_log()logger.info('info logger')logger.debug('debug test logger')

推荐阅读
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • Java 中的等时日期(int,int)方法,示例 ... [详细]
  • Python多线程详解与示例
    本文介绍了Python中的多线程编程,包括僵尸进程和孤儿进程的概念,并提供了具体的代码示例。同时,详细解释了0号进程和1号进程在系统中的作用。 ... [详细]
  • 本文详细介绍了如何使用Python的多进程技术来高效地分块读取超大文件,并将其输出为多个文件。通过这种方式,可以显著提高读取速度和处理效率。 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 第十九天 - 类的约束、异常处理与日志记录
    本文介绍了如何通过类的约束来确保代码的一致性,以及如何使用异常处理和日志记录来提高代码的健壮性和可维护性。具体包括抛出异常、使用抽象类和方法,以及异常处理和日志记录的详细示例。 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
author-avatar
我只是狼却有幅羊的心肠_152
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有