我在 Raspberry Pi Zero W 上的 python 应用程序中使用了这种简单的日志记录方法:
import logging
def get_logger(name):
logger = logging.getLogger(name)
if not logger.handlers:
log_handler = logging.FileHandler(config.LOG[name]["FILE"])
log_formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
log_handler.setFormatter(log_formatter)
logger.addHandler(log_handler)
logger.setLevel(config.LOG[name]["LEVEL"])
return logger
logger = get_logger('MAIN')
logger.info('text')
这个 Python 应用程序在启动时自动运行。今天我有几毫秒的短暂电池故障,Pi 重新启动。当我检查日志文件时,我发现了一件奇怪的事情——重启后的日志条目出现在日志文件中,时间戳为“旧”:
2019-09-10 06:17:58,739 INFO event before reboot
2019-09-10 06:17:58,763 INFO event before reboot
2019-09-10 06:20:48,771 INFO event before reboot
2019-09-10 06:20:48,794 INFO event before reboot
2019-09-10 06:17:30,302 INFO event after reboot
2019-09-10 06:17:30,307 INFO event after reboot
我想知道什么可能导致这种行为,以及如何解决它。我的主要猜测是 Pi 在启动时会启动一些时间调整实用程序来更新系统时钟。在我的特殊情况下,这导致时钟稍微倒退了一点。但不知道有没有办法验证这个预感。