尝试完成作业3

根据题目要求,可以按照以下方式实现类似的功能:

  1. 在utils.py中定义一个名为Logger的工具类,这个类负责日志的输出和写入操作。它需要传入一个参数:日志名称。该类的实现可以使用Python的logging模块,这样可以方便地进行日志的管理和配置。
# utils.py

import logging
import os

class Logger:
    def __init__(self, log_name):
        # 判断日志文件是否存在,若不存在则创建
        if not os.path.exists(log_name):
            open(log_name, 'w').close()
        
        # 设置日志输出格式和级别
        logging.basicConfig(filename=log_name, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

    def log(self, msg):
        # 写入日志
        logging.info(msg)
  1. 在main.py中,定义一个名为Server的主类,该类用于处理逻辑并实现将日志内容输出到指定文件的功能。
# main.py

import sys
from utils import Logger
import threading

class Server:
    def __init__(self, log_name):
        # 实例化Logger工具类
        self.logger = Logger(log_name)

    def output_log(self):
        # 重定向标准输出和错误输出至日志文件
        sys.stdout = self.logger
        sys.stderr = self.logger

        # 持续输出日志内容
        while True:
            # 调用其他方法生成需要输出的日志内容
            log_content = self.generate_log_content()

            # 输出日志内容到标准输出
            print(log_content)

    def generate_log_content(self):
        # 在这个方法中生成需要输出的日志内容
        # 可以根据具体需求进行逻辑的实现
        return "This is a log message"

if __name__ == '__main__':
    # 实例化Server类
    server = Server("log.txt")

    # 使用多线程启动日志输出
    t = threading.Thread(target=server.output_log)
    t.start()

上述代码中,Server类的output_log方法中的print语句会将日志内容输出到Logger类中重定向的标准输出中,由Logger类负责将其写入日志文件中。

这样,就可以实现将日志内容输出到指定的文件中,并且能够实时将新的日志内容写入文件,同时保存之前的日志记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值