我有一个使用cron(基于debian的raspberry pi)在autostart上运行的应用程序(使用python脚本)。我正在使用python日志记录模块将日志写入文件,基于应用程序中发生的事件。现在,我希望能够在程序运行时查看程序中任何错误的日志。例如,如果我的一个USB设备损坏,那么当应用程序启动时,它将发出USB设备未找到的错误。是否有任何方法可以在pi上的任何内置日志文件中查看这些错误?或者我们应该在代码中编写错误日志。如果是这样,我如何编写日志来检测错误?
答案 0 :(得分:2)
例如USB设备断开连接时会出现两种错误:
系统错误是登录内置日志文件(通常在/var/log/
中)。在这种情况下,您可以使用rsyslog
对文件中的错误进行分类,并使用其他应用程序进行观察。
在这里,您可以找到一些有用的rsyslog
配置:http://wiki.rsyslog.com/index.php/Configuration_Samples
我相信很明显,如果出现应用程序错误,您应该使用应用程序记录错误并观察它们。
答案 1 :(得分:0)
好的,我根据你的意见重新写了答案: 安装PyUSB
检查USB设备是否正常工作:
def getUSBDeviceStatus(vendor, product):
#idVendor 0xfffe, idProduct=0x0001
dev = usb.core.find(idVendor=vendor, idProduct=product)
if dev is None:
raise ValueError("Device failed or is not connected!")
else:
return 1
根据类型检索日志:
def retrieveLogs(type):
with open('/home/pi/log/log.log') as file:
lines = sum(1 for _ in file)
readerPosition = 0
readingLine = file.readline()
while readerPosition >= lines:
if readingLine.find(type):
print readingLine
readerPosition += 1
PS:我假设您记录了各自的重要性错误。