测井增强。

oh-my-logging的Python项目详细描述


哦,我的日志

日志模块的扩展。

安装

pip install oh_my_logging

用法

装饰工

记录器

注入logger对象作为最后一个参数。

from oh_my_logging.decorators import logger

@logger
def myprint(message, logger):
    logger.debug(message)
    logger.info(message)
    logger.warn(message)
    logger.error(message)
    
myprint('hello')

对数参数

函数的日志参数。

from oh_my_logging.decorators import log_args

@log_args
def sum(a, b):
    return a + b
    
sum(1,2) # echo 'params: a=1, b=2'

日志返回

函数的日志重新调整值。

from oh_my_logging.decorators import log_returnings

@log_returnings
def sum(a, b):
    return a + b
    
sum(1,2) # echo 'returning: 1'

对数统计

计算特定函数的执行时间开销。

from oh_my_logging.decorators import log_stat

@log_stat
def sum(a, b):
    return a + b
    
sum(1,2) # echo statistic: 1.2ms'

日志错误

记录异常信息然后再次引发异常,或者捕获然后忽略特定异常。

from oh_my_logging.decorators import log_error

# Log then raise exception again.
@log_error
def myfile(name):
    raise FileNotFoundException(name)

myfile('123')

# Log then catch then ignore FileNotFoundException.
@log_error(ignore_errors=(FileNotFoundException,))
def myfile2(name):
    raise FileNotFoundException(name)
    
myfile2('123')

对数

超级装饰,包含了以上所有装饰的功能。如果要记录两个或更多信息,请使用建议的此装饰器。

from oh_my_logging.decorators import log

@log(log.ARGS, 
     log.RETURNING, 
     log.STAT, 
     {'target': log.ERROR, 
      'ignore_errors': (FileNotFoundException,)})
def myfile(name):
    raise FileNotFoundException(name)

myfile('123')

日志记录配置

默认配置

存储在$PWD/logging.ini中的默认日志记录配置。

json/yaml配置

from oh_my_logging.builders import LoggerBuilderFactory

# JSON
LoggerBuilderFactory('/path/to/logging.js')

LoggerBuilderFactory.unsafe_clear()
LoggerBuilderFactory('/path/to/logging.json')

# YAML
LoggerBuilderFactory.unsafe_clear()
LoggerBuilderFactory('/path/to/logging.yml)

LoggerBuilderFactory.unsafe_clear()
LoggerBuilderFactory('/path/to/logging.yaml)

dict配置

from oh_my_logging.builders import LoggerBuilderFactory

dictConfig = {
    'version': 1,
    'root': {
        'level': 'DEBUG',
        'handlers': ['memory'],
    },
    'handlers': {
        'memory': {
            'class': 'oh_my_logging.handlers.MemoryHandler',
            'formatter': 'default',
        },
    },
    'formatters': {
        'default': {
            'format': '%(message)s',
        },
    },
}
LoggerBuilderFactory(dictConfig)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OpenShift的齿轮特性   java如何在Liferay站点的每个页面上放置公司地址和电话?   java确定整数数组中是否存在一个子集,在两个条件下求和到给定的目标值   序列化为什么java中的serialVersionUID必须是静态的、最终的、长类型的?   java响应返回null   java注入接口实现Quarkus   java我不明白为什么第二次排序的运行时间比第一次慢?   (Java)显示图像的最佳方式?   java Android应用程序因添加布局而崩溃   java如何在运行时获取泛型变量的类   java Selenium web驱动程序:无效的选择器:*:WebKitFullScreenSentor   Spring中的java注入值始终为空   Eclipse中带有TestNG插件的@BeforeSuite和@AfterSuite的java问题   使用trycatch块、filewriter和printwriter在java中创建自定义类   如何在Java 安卓上绘制相交的两条线