当前位置: 首页 > 知识库问答 >
问题:

Python:用时间戳记录操作和异常

闻人德庸
2023-03-14

我正在写一个脚本,连接到N主机通过SSH...查询第三方系统和提取数据,然后显示所有收集的数据在一定的格式。

我希望将脚本执行的所有操作以及在控制台和日志文件中遇到的任何异常记录下来,这样用户就可以看到脚本运行时发生了什么(如果有人使用了Ansible,那么就像我们在运行playbooks时在控制台和日志中得到的输出一样)

预期产出

    null

请给出建议,如果可能的话,用一个使用该技术的示例脚本。谢谢

共有1个答案

高山
2023-03-14

您可以在这里查看一些更详细的指导。以下是我通常如何设置登录我的东西:

import logging

...

logger = logging.getLogger()
log_handler = logging.StreamHandler(sys.stdout)
log_handler.setFormatter(logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s - %(funcName)s - line %(lineno)d"))
log_handler.setLevel(logging.DEBUG)
logger.addHandler(log_handler)
logger.setLevel(logging.DEBUG)

对于debug以上的任何事件,将产生如下输出:

2017-05-16 13:30:03,193 - root - INFO - Starting execution - main - line 35
2017-05-16 13:30:03,206 - root - DEBUG - Config file grabbed successfully - readConfig - line 71
...
2017-05-15 13:30:26,792 - root - WARNING - Reached maximum number of attempts (3) for this request; skipping request. - main - line 79
2017-05-15 13:30:26,797 - root - ERROR - Failed to grab item. Unfortunately, this is a showstopper :( - main - line 79

上面的代码是由我的应用程序的main函数中的一行代码生成的,其内容是:

logger.info("Starting execution")
logging.debug("Config file grabbed successfully")
logging.warning("Reached maximum number of attempts ({max_attempts}) for this request; skipping request.".format(max_attempts = max_tries))
...
logging.error("Failed to grab item. Unfortunately, this is a showstopper :(")
import logging

...

# Set up logging and formatting
logger = logging.getLogger()
logFormatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s - %(funcName)s - line %(lineno)d")

# Set up the console handler
consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(logFormatter)
logger.addHandler(consoleHandler)

# Set up the file handler 
fileHandler = logging.FileHandler("{0}/{1}.log".format(logPath, fileName))
fileHandler.setFormatter(logFormatter)
logger.addHandler(fileHandler)

# Set up logging levels
consoleHandler.setLevel(logging.DEBUG)
fileHandler.setLevel(logging.DEBUG)
logger.setLevel(logging.DEBUG)
 类似资料:
  • 本文向大家介绍Python 时间戳之获取整点凌晨时间戳的操作方法,包括了Python 时间戳之获取整点凌晨时间戳的操作方法的使用技巧和注意事项,需要的朋友参考一下 Python时间戳操作很多,每次用点时候总是去查,查的麻烦,现在自己也好好归纳一下。 我现在刚好有个需求需要获取当天零点时间戳,但是网上查的大部分都是用时间戳相减,或者用时区的方式,总感觉不是很好,我就自己写了一个。 获取凌晨时间  

  • 我使用处理器API创建kafka流媒体应用程序。 下面是我如何创建一个主题,将时间戳附加到所有传入消息 Kafka主题。sh--创建--zookeeper localhost:2181--复制因子1--分区1--主题topicName--配置消息。时间戳。类型=创建时间 工作流处理来自源主题的传入消息并将其发布到接收器主题。出于某种奇怪的原因,我在源主题和接收器主题消息中看到了相同的时间戳。例如,

  • 问题内容: 我最近了解到oracle具有对我来说非常有用的功能-因为设计者/实现者不太在意数据历史记录- 我可以查询记录的历史状态(如果它在oracle缓存中仍然可用),如下所示: 但是现在我需要检查范围内的历史数据。使用缓存是否有可能? 问题答案: 是的,像这样: 请注意,您可以走多远受UNDO_RETENTION参数的限制,通常为几小时而不是几天。

  • 问题内容: 我有一列称为“ s_timestamp”。 如何返回时间戳中具有当天的所有记录? 例如, 我想要以下输出: 让我知道是否不清楚。 问题答案: 只是使用。例如 日期() CURDATE()

  • 我正在使用FluentD(v.12最后一个稳定版本)向Kafka发送消息。但是FluentD正在使用一个旧的KafkaProducer,所以记录时间戳总是设置为-1。因此,我必须使用WallclockTimestampExtrator将记录的时间戳设置为消息到达kafka时的时间点。 是否有特定于Kafka Streams的解决方案? 我真的感兴趣的时间戳,是由Fluentd在消息中发送的: “时

  • 本文向大家介绍python3 中时间戳、时间、日期的转换和加减操作,包括了python3 中时间戳、时间、日期的转换和加减操作的使用技巧和注意事项,需要的朋友参考一下 1.当前时间戳转换为指定格式的日期 2.把字符串类型的日期转换为时间戳 3.更改str类型日期的显示格式 4.日期的加减 两个日期的加减,计算间隔多少天。 今天3天后的日期。 今天3天前的日期。 在datetime模块中有timed