1

我想创建一个在树莓派上运行 python 脚本时遇到的错误日志(一个使用 rasbian 的嵌入式模块,它是一种 linux),以便我可以在以后检查它以查看问题发生在哪里. 我想在每次运行脚本时附加错误,记录日期和错误文本(例如,我在异常中打印出来或在 python 本身的某个地方生成)

我想这一定是一件很常见的事情,所以在我自己写之前,我想知道是否有一种标准的方式来做这种事情

我发现了一些这样的建议,但它不打印日期。另外我想知道是否应该将fsock函数作为参数传递给函数,还是可以使用全局 ....

fsock = open('my_app_error.log', 'a')
sys.stderr = fsock

fsock.write("URLError")
4

1 回答 1

2

你可以做类似的事情

def logError(message):
    import inspect
    import logging
    import traceback

    cframe = inspect.currentframe()
    called_from = inspect.getframeinfo(cframe.f_back).function
    try:
        stack_trace = traceback.format_exc()
    except AttributeError:
        stack_trace = 'Unable to retrieve stack_trace.'

    error = '{},{},{},{}\n'.format(message, user, called_from,stack_trace.replace('\n','|'))
    logging.basicConfig(format='%(asctime)s%(message)s', datefmt='%m/%d/%Y %I:%M:%S %p',filename='log.csv')
    logging.warning(error)

inspect,loggingtraceback模块对于错误记录很有用

于 2013-08-21T00:40:44.187 回答