【发布时间】:2018-01-25 17:55:43
【问题描述】:
我在 Python 2.7 代码中使用记录器来创建要绘制的 CSV。 它在没有 RTC 的嵌入式模块上运行。 我对时间戳没有任何用处,但想包含一个标签,所以我可以更容易地绘制它们。记录器的设置方式使其在重新启动之间继续。
我目前正在使用提供如下标签的格式化程序进行记录:
# Add formatter to the file handler.
formatter = logging.Formatter('%(asctime)s,%(message)s','%H:%M:%S')
fh.setFormatter(formatter)
但由于开发板没有 RTC,因此只想将行号记录为标签而不是时间。
如何解决这个问题?我不能只使用增量整数,因为下次程序启动时它将从头开始而不是增量。
提前致谢!
【问题讨论】:
-
在不知道您的系统是否有任何形式的非易失性存储的情况下,无法回答。但是,如果确实如此,那么答案就像将序列号存储在非易失性存储器中一样简单。如果您的日志记录是持久化文件,那么您可以简单地检查文件中的最后一条日志消息来初始化计数器。
-
感谢@Clifford!后者是我正在寻找的:如何检查最后一条日志消息以初始化计数器?这是我从记录器做的事情,还是只是做something like this?
-
我不是 Python 或 Linux 方面的专家 - 只是在这里,因为您将其标记为“嵌入式”。 logger 类不提供读取日志的方法,这是合理的,因为日志不需要是持久的(即保存到文件中)。我猜你将不得不使用常规文件 I/O。考虑到日志是可变长度的,寻找文件末尾并向后迭代以找到最后一行的开头可能是最有效的 - 也许将序列号放在末尾而不是行的开头。
-
感谢@Clifford!我会那样做,然后:)
标签: python linux python-2.7 logging embedded