Python / init.d:如何在不存储的情况下将错误记录到文件并实时读取DEBUG?

时间:2019-04-18 13:15:37

标签: python python-3.x logging systemctl python-logging

我有一个Python脚本,它在启动时即作为服务启动:/path/to/venv/python /path/to/script.py。该服务调用脚本script.py

ERROR中,我有一个记录器,该记录器将日志级别为 DEBUG的所有日志写入文件

可以。

我希望能够实时按要求阅读debug_logger = logging.getLogger('debug') debug_logger.debug("I don't write to file.") logging.basicConfig(filename='error.log') error_logger = logging.getLogger('error') error_logger.error("I write to file.") 日志,但我不知道良好实践。< / p>

我想到的方法是创建两个记录器,但是不知道如何读取输出:

debug_logger

问题: 将脚本作为服务启动时,如何访问tail -f error.log的输出?

我正在寻找与sudo systemctl read-log-output my.service等效的东西,但对于未存储的调试日志。像class SaleOrderMultiConfirm(models.TransientModel): _inherit = "sale.order.multi.confirm" @api.multi def action_multi_confirm(self): # calling the native method first super(SaleOrderMultiConfirm, self).action_multi_confirm() order_ids = self.env["sale.order"].browse(self._context.get('active_ids')) # When SOs are validated it should be in mrp production if order_ids: mrp_list = sorted( [(mrp_id.product_tmpl_id.categ_id.menu_type_id, mrp_id) for order_id in order_ids for mrp_id in self.env['mrp.production'].search([('origin', '=', order_id.name)])], key=lambda k: k[0]) mrp_list = [mrp[1] for mrp in mrp_list] mrp = self.env['mrp.production'].browse(mrp_list[0].id) return self.env.ref('sample_report.action_compute_needs').report_action(mrp, data={'mrp': mrp_list}) 之类的东西。

我认为这是一个普遍的问题,应该有一个标准的解决方案来解决,但是到目前为止,尽管这个问题对good answers来说很多,我仍然找不到合适的解决方案。

也许甚至可以通过一个记录器来控制它?

有什么想法吗?预先感谢!

0 个答案:

没有答案