我有一个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来说很多,我仍然找不到合适的解决方案。
也许甚至可以通过一个记录器来控制它?
有什么想法吗?预先感谢!