logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
formatter = logging.Formatter("%(asctime"> logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
formatter = logging.Formatter("%(asctime">
117.info
人生若只如初见

Debian上Python日志管理有哪些最佳实践

在Debian上使用Python进行日志管理时,可以遵循以下最佳实践:

  1. 初始化logging模块并创建基本日志器

    import logging
    
    logger = logging.getLogger("my_logger")
    logger.setLevel(logging.DEBUG)
    handler = logging.StreamHandler()
    formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    logger.info("Hello, logging world!")
    
  2. 设置日志级别,精细化控制信息输出

    logger.debug("Debugging info...")
    logger.info("Important notice.")
    logger.warning("Watch out!")
    logger.error("Oops, something went wrong.")
    logger.critical("Emergency alert!")
    
    logger.setLevel(logging.WARNING)
    
  3. 定制日志格式,让日志信息一目了然

    formatter = logging.Formatter("%(asctime)s [%(levelname)s] %(module)s.%(funcName)s(): %(message)s", datefmt="%Y-%m-%d %H:%M:%S",)
    handler.setFormatter(formatter)
    logger.info("Now with a custom format!")
    
  4. 添加日志处理器,灵活处理日志输出目的地

    file_handler = logging.FileHandler("app.log")
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)
    logger.info("This message goes both to console and file!")
    
  5. 使用多个日志处理器

    file_handler = logging.FileHandler('app.log')
    file_handler.setLevel(logging.DEBUG)
    file_formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
    file_handler.setFormatter(file_formatter)
    
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.INFO)
    console_formatter = logging.Formatter('%(levelname)s - %(message)s')
    console_handler.setFormatter(console_formatter)
    
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)
    
  6. 使用日志轮转工具: 安装 logrotate

    sudo apt-get install logrotate
    

    配置 logrotate: 创建或编辑 /etc/logrotate.d/spider 文件:

    /path/to/spider/*.log {
        daily rotate 7
        compress
        delaycompress
        missingok
        notifempty
        create 0640 spider spider
        postrotate
            /path/to/spider/restart_spider.sh
        endscript
    }
    

    创建重启脚本 /path/to/spider/restart_spider.sh

    #!/bin/bash
    sudo systemctl stop spider
    sleep 5
    sudo systemctl start spider
    
  7. 使用ELK Stack(Elasticsearch, Logstash, Kibana): 安装和配置ELK Stack:

    • Elasticsearch

      wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
      echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
      sudo apt-get update && sudo apt-get install elasticsearch
      
    • Logstash

      wget -qO - https://artifacts.elastic.co/GPG-KEY-logstash | sudo apt-key add -
      echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/logstash-7.x.list
      sudo apt-get update && sudo apt-get install logstash
      
    • Kibana

      wget -qO - https://artifacts.elastic.co/GPG-KEY-kibana | sudo apt-key add -
      echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/kibana-7.x.list
      sudo apt-get update && sudo apt-get install kibana
      

    配置Logstash: 创建 /etc/logstash/conf.d/spider.conf 文件:

    input {
        file {
            path "/path/to/spider/*.log"
            start_position "beginning"
        }
    }
    
    filter {
        # 添加过滤器配置
    }
    
    output {
        elasticsearch {
            hosts ["localhost:9200"]
            index "spider-logs"
        }
        stdout {
        }
    }
    

    启动Logstash:

    sudo systemctl start logstash
    

    配置Kibana: 访问 http://localhost:5601,使用默认的用户名和密码(kibana_system / changeme)登录,然后配置索引模式以匹配你的日志数据。

通过这些最佳实践,可以有效地管理Python日志,确保系统的高效运行和问题的快速排查。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe252AzsNAg9SBVc.html

推荐文章

  • Debian部署K8s需要哪些资源

    在Debian上部署Kubernetes集群需要满足一定的资源需求,以确保集群的稳定性和性能。以下是基于搜索结果的综合信息:
    硬件要求 CPU:至少需要2核CPU,对于生...

  • Debian Golang版本怎么选

    在Debian系统上选择Golang版本时,可以参考以下建议:
    1. 确定使用场景 稳定版(Stable):如果你需要一个稳定、安全且长期支持的系统,Debian 11 (Bullsey...

  • Debian iptables如何进行流量监控

    在Debian系统中,使用iptables进行流量监控可以通过多种方式实现。以下是一些常用的方法:
    1. 使用iptables的日志功能
    你可以使用iptables的日志功能来...

  • WebLogic在Debian上的故障排查步骤有哪些

    WebLogic在Debian上的故障排查可以参考以下步骤:
    环境及问题现象 环境说明:确认WebLogic版本、架构、Redis配置、JDK版本以及操作系统版本和资源使用情况。...

  • ubuntu文件系统如何删除文件

    在Ubuntu中,删除文件有多种方法。以下是一些常用的方法:
    方法一:使用图形用户界面(GUI) 打开文件管理器: 可以通过点击屏幕左上角的Ubuntu图标,然后选...

  • Debian spool与邮件服务有何关联

    在Debian系统中,邮件服务(MTA)通常使用邮件队列来处理和转发邮件。邮件队列是一个存储待发送邮件的临时存储区域,也称为“spool”。当邮件服务接收到一封新邮...

  • centos pgadmin性能优化技巧

    在CentOS系统上使用pgAdmin进行性能优化可以通过多种方法实现,以下是一些常见的优化技巧:
    系统级优化 关闭无用服务:关闭不需要的服务可以减少系统资源占...

  • Debian Kafka数据迁移有哪些方法

    在Debian系统上进行Kafka数据迁移主要有以下几种方法: 使用Kafka Connect和Debezium: 简介:Debezium是一个分布式平台,能够通过捕获数据库的变更数据(例如,...