美文网首页
10, log模块

10, log模块

作者: 薛东弗斯 | 来源:发表于2024-02-14 16:54 被阅读0次
# project > util > log_util.py
import logging
import os.path
import time

root_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
log_path = os.path.join(root_path, "log")


class Logger:

    def __init__(self):
        # 定义日志位置和文件名
        self.logname = os.path.join(log_path, "{}.log".format(time.strftime("%Y-%m-%d")))
        # 定义一个日志容器
        self.logger = logging.getLogger("log")
        # 设置日志打印的级别
        self.logger.setLevel(logging.DEBUG)
        # 创建日志输入的格式
        self.formater = logging.Formatter(
            '[%(asctime)s][%(filename)s %(lineno)d][%(levelname)s]: %(message)s')
        # 创建日志处理器,用来存放日志文件
        self.filelogger = logging.FileHandler(self.logname, mode='a', encoding="UTF-8")
        # 创建日志处理器,在控制台打印
        self.console = logging.StreamHandler()
        # 设置控制台打印日志界别
        self.console.setLevel(logging.DEBUG)
        # 文件存放日志级别
        self.filelogger.setLevel(logging.DEBUG)
        # 文件存放日志格式
        self.filelogger.setFormatter(self.formater)
        # 控制台打印日志格式
        self.console.setFormatter(self.formater)
        # 将日志输出渠道添加到日志收集器中
        self.logger.addHandler(self.filelogger)
        self.logger.addHandler(self.console)

    def test(self):
        self.logger.info("hahahaha")


logger = Logger().logger

if __name__ == '__main__':
    logger.debug("我打印debug日志")
    logger.info("我打印info日志")
    logger.warning("我打印warning日志")
    logger.error("我打印error日志")
    # Logger().test()

# project > test_cases > test_post.py
import pytest
from api.api import try_json
from utils.read_test import base_data
from utils.log_util import logger

def test_post():
    logger.info("test_post start...")
    json_data = base_data.read_data()['json_data']
    result = try_json(json_data)
    print(result)
    assert result['id'] == 101
    logger.info("test_post completed!")

if __name__ == '__main__':
    pytest.main()

# result
test_post.py [2024-02-15 17:01:58,217][test_post.py 7][INFO]: test_post start...
{'title': 'foo', 'body': 'bar', 'userId': 1, 'id': 101}
.

============================== 1 passed in 1.08s ==============================
[2024-02-15 17:01:59,202][test_post.py 12][INFO]: test_post completed!

相关文章

  • log模块

    传1个字符串就好 用go习惯了,今天遇到了一个bug,怎么看怎么觉得没毛病。 不能传不定参数,只能传一个字符串啊。...

  • Golang学习笔记之日志log、zap

    一、log日志包 log支持并发操作。其结构定义如下: log基本日志格式 (1)Golang's log模块主要...

  • NodeJS

    使用 colors 模块 console.log('红色'.red); console.log('绿色'.gree...

  • MySql学习(二)日志系统 一条SQL更新语句是如何执行的?

    目录: 更新语句执行流程 重要日志模块:redo log 重要日志模块:bin log 两阶段提交 小结 更新语句...

  • golang 日志模块(log)

    log 日志 log 模块可以自定义log 对象, 也可以使用log默认对象的日志方法 func New 创建lo...

  • 10、service-zuul-10003

    模块结构 模块代码 pom.xml DockerFile resourcesapplication.yml log...

  • 8、hystrix-dashboard-10001

    模块结构 模块代码 pom.xml DockerFile resourcesapplication.yml log...

  • Log模块使用

    IFramework所有模块总目录 简介 Log模块是 IF(IFramework简称)框架最简单,最基础的模块。...

  • log模块配置

    logback配置全解析 作者:muggleLogback是由log4j创始人设计的另一个开源日志组件,分为三个模...

  • ovs log模块

    ovs的两个进程ovsdb-server和ovs-vswitchd都使用了内置的vlog来控制各自的log内容,合...

网友评论

      本文标题:10, log模块

      本文链接:https://www.haomeiwen.com/subject/fyteadtx.html