Python笔记 之 自定义日志类

代码如下

# -*- codeing = utf-8 -*-
# @File : CCLLogger.py
# @Author : 一起种梧桐吧
# @Version : Python 3.10.0
# @Software : PyCharm
# @Time : 2022-08-23 15:39
# @Purpose : 在文件运行当前目录创建logfile文件目录写日志


import sys
from os import mkdir
from os.path import (abspath, dirname, join, isdir)
from datetime import date
from time import localtime


def defaultfilename():
	"""设置默认日志目录"""
	dir_log = 'logfile'
	filename = date.strftime(date.today(), '%Y-%m-%d') + '.log'
	path = abspath(__file__)  # 获取运行文件路径
	# name = os.path.basename(path) # 获取文件名
	dir = join(dirname(path), dir_log)
	if not isdir(dir): mkdir(dir)
	return join(dir, filename)


class Logger(object):
	def __init__(self, filename=defaultfilename(), stream=sys.stdout):
		"""
		初始化参数并打开日志文件
		:param filename:
		:param stream:
		"""
		self.terminal = stream
		# 打开日志文件,追加日志记录
		self.log = open(filename, 'a+', encoding='utf-8')
		self.time = None
	
	def write(self, message):
		"""
		写日志
		:param message: str
		:return:
		"""
		self.gettime()
		self.terminal.write(self.time + ' >> ' + message)
		self.terminal.write('\n')
		self.log.write(self.time + ' >> ' + message)
		self.log.write('\n')
	
	def gettime(self):
		"""
		输出时间格式化
		:return:
		"""
		tm = localtime()
		self.time = ':'.join(
			[str(tm.tm_hour).rjust(2, '0'), str(tm.tm_min).rjust(2, '0'), str(tm.tm_sec).rjust(2, '0')])


if __name__ == '__main__':
	log = Logger()
	log.write('Hello world')

运行结果

D:\Python\Python310\python.exe E:/DataAnalysis/CustomClassLibrary/CCLLogger.py
11:05:20 >> Hello world
11:05:20 >> First log

Process finished with exit code 0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值