Skip to content
📔 阅读量:

Funnylog2

一个简单易用、功能强大的日志工具。

只需要加一个装饰器,就能自动日志输出类里面所有的方法的功能说明。

PyPI

安装

console
pip3 install funnylog2

使用方法

1、自动输出日志

py
#!/usr/bin/env python3
# _*_ coding:utf-8 _*_
from funnylog2 import logger
from funnylog2 import log
from funnylog2.config import config

config.CLASS_NAME_ENDSWITH = ["Log"]
logger("DEBUG")


class BaseLog:

    def base_self_method(self):
        """我是 基类 里面的实例方法"""

    @classmethod
    def base_cls_method(self):
        """我是 基类 里面的类方法"""

    @staticmethod
    def base_static_method():
        """我是 基类 里面的静态方法"""

# 注意这里,只需要在这里挂一个装饰器
@log
class TestLog(BaseLog):
    """继承了基类BaseLog"""

    def self_method(self):
        """我是 类 里面的实例方法"""

    @classmethod
    def cls_method(self):
        """我是 类 里面的类方法"""

    @staticmethod
    def static_method():
        """我是 类 里面的静态方法"""


if __name__ == '__main__':
    # @log装饰器自动打印
    TestLog().self_method()
    TestLog().cls_method()
    TestLog().static_method()
    # 直接调用基类里面的方法,也能自动打印
    TestLog().base_self_method()
    TestLog().base_cls_method()
    TestLog().base_static_method()

终端输出:

2、方法中输出其他的日志

py
#!/usr/bin/env python3
# _*_ coding:utf-8 _*_
from funnylog2 import logger
from funnylog2 import log
from funnylog2.config import config

config.CLASS_NAME_ENDSWITH = ["Log"]
logger("DEBUG")


class BaseLog:
    ...

# 注意这里,只需要在这里挂一个装饰器
@log
class TestLog(BaseLog):
    """继承了基类BaseLog"""
    ...

    @staticmethod
    def static_method():
        """我是 类 里面的静态方法"""

        # 方法里面仍然可以单独打印日志
        logger.debug("这是我想再输出的其他 debug 日志")
        logger.info("这是我想再输出的其他 info 日志")
        logger.error("这是我想再输出的其他 error 日志")


if __name__ == '__main__':
    # @log装饰器自动打印
    TestLog().static_method()

终端输出:

3、在外层其他直接使用

py
#!/usr/bin/env python3
# _*_ coding:utf-8 _*_

from funnylog2 import log
from funnylog2 import logger
from funnylog2.config import config

config.CLASS_NAME_ENDSWITH = ["Log"]
logger("DEBUG")


class BaseLog:
    ...


# 注意这里,只需要在这里挂一个装饰器
@log
class TestLog(BaseLog):
    """继承了基类BaseLog"""
    ...


if __name__ == '__main__':
    # logger直接调用
    logger.debug("这是在类外面打 debug log")
    logger.info("这是在类外面打 info log")
    logger.error("这是在类外面打 error log")

终端输出:

必要配置项

  • LOG_FILE_PATH 日志文件的生成路径

    默认是在:/tmp/_logs,你可以配置为其他位置;

    python
    from funnylog2.config import config
    
    config.LOG_FILE_PATH = "/home/user/xxx"
  • LOG_LEVEL日志级别

    默认日志输出级别为 DEBUG 级别,同样可以进行配置修改;

    python
    from funnylog2.config import config
    
    config.LOG_LEVEL = "INFO"
  • 自动输出日志的类名称

    • CLASS_NAME_STARTSWITH 类名以什么开头

      python
      from funnylog2.config import config
      
      config.CLASS_NAME_STARTSWITH = ["Test"]
    • CLASS_NAME_ENDSWITH 类名以什么结尾

      python
      from funnylog2.config import config
      
      config.CLASS_NAME_ENDSWITH = ["Method"]
    • CLASS_NAME_CONTAIN 类名包含什么字符

      python
      from funnylog2.config import config
      
      config.CLASS_NAME_CONTAIN = ["Assert"]