python如何写日志_【Python】教你如何在python中添加日志

背景

起因是这次的项目用thrift来连接算法(python)和业务逻辑(java),因此有必要在python中添加日志来记录传入的参数。这样,当算法端没有正确响应时,就能方便地排查原因。

简易版实现

首先,我在google里面找到了官方的HOWTO文档资料。具体文档见参考资料1.

如何将日志落成日志文件?

import logging

logging.basicConfig(filename='example.log', level=logging.DEBUG)

logging.debug('this message should go to the log file')

logging.info('so should this')

logging.warning('and this, too')

运行上面的代码,在本地就会出现example.log的文件了。看起来很简单,但是需要进一步了解如何在项目中使用。

进阶版实现

知识点

然后我在medium上找到了一篇博客来看。博客中提到,配置日志只需要三个零件:一个logger对象——官方的logger工具

一个formatter——告诉logger要输出成什么样的格式

一个handler——设置logger输出到文件还是打印到控制台

代码实现

我想实现的功能很简单,每次调用print_name(name)函数时,都会把传入的参数name记录到日志里。

依照这篇博客,我写了两个.py文件:一个用来存放对logger的配置,

另一个用来实现功能模块,并在该模块中调用logger,实现记录日志的功能。

第一个文件名为logging_config.py, 内容如下:

import logging

class Config():

# creating a logger对象

logger = logging.getLogger('mylogger')

# define the default level of the logger

logger.setLevel(logging.INFO)

# creating a formatter

formatter = logging.Formatter( '%(asctime)s|%(levelname)s->%(message)s' )

# creating a handler to log on the filesystem

file_handler=logging.FileHandler('mylogfile.log')

file_handler.setFormatter(formatter)

file_handler.setLevel(logging.INFO)

# adding handlers to our logger

logger.addHandler(file_handler)

#logger.info('this is a log message...')

def get_config(self):

return self.logger

第二个文件名为test_module.py, 内容如下:

import logging_config

logger = logging_config.Config().get_config()

def print_name(name):

logger.info(name)

print(name)

接下来,在console里进行如下操作:

import test_moduletest_module.print_name('Nicole')

test_module.print_name('Duoduo')test_module.print_name('Dabao')

在控制台会相应地打印这三个名字。 打开这两个文件所在的文件夹,会发现多了一个mylogfile.log的文件,用记事本打开,里面的内容为:日志内容

参考资料

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值