zoukankan      html  css  js  c++  java
  • python3练习-发送IP地址到邮箱(使用日志)

    看了下python下的logging模块,和java的log4j差不多,把之前的代码改为使用log配置的方式实现功能(需求和之前的相同,地址"http://www.cnblogs.com/GYoungBean/p/6510508.html")
    #! usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    import socket
    import threading
    import logging.config
    
    now_ip = ""
    
    def _get_ip_win():
        ips = socket.gethostbyname_ex(socket.gethostname())
        for s in ips[2]:
            if s.startswith('10'):
                return s
    
    def checkIP(start_ip):
        global now_ip
        if start_ip != now_ip:
            logger_mail.error('Send Mail:the old IP is:%s.Now,the new IP is:%s' % (now_ip,start_ip))
            now_ip = start_ip
        else:
            logger_root.info('IP address not change,the old IP is:%s---the new IP is:%s' % (start_ip, now_ip))
        new_ip = _get_ip_win()
        t = threading.Timer(3600.0, checkIP,(new_ip,))
        t.start()
    
    if __name__ == '__main__':
        logging.config.fileConfig("./logging.conf")
        logger_mail = logging.getLogger('mail')
        logger_root = logging.getLogger('root')
        start_ip,now_ip = _get_ip_win(),_get_ip_win()
        checkIP(start_ip)
    日志配置如下(logging.conf):
    [loggers]
    keys=root,mail
    
    [handlers]
    keys=consoleHandler,fileHandler,mailHandler
    
    [formatters]
    keys=simpleFormatter
    
    [formatter_simpleFormatter]
    format=%(asctime)s - %(name)s - %(levelname)s - %(message)s - [%(filename)s:%(lineno)s]
    datefmt=
    
    
    [logger_root]
    level=INFO
    handlers=consoleHandler,fileHandler
    
    [logger_mail]
    level=ERROR
    handlers=mailHandler,fileHandler
    qualname=mail
    propagate=0
    
    [handler_consoleHandler]
    class=StreamHandler
    level=INFO
    formatter=simpleFormatter
    args=(sys.stdout,)
    
    [handler_fileHandler]
    class=FileHandler
    level=INFO
    formatter=simpleFormatter
    args=('./ipchange.log', 'a')
    
    [handler_mailHandler]
    class=handlers.SMTPHandler
    level=ERROR
    formatter=simpleFormatter
    args=(('xxx',25), 'xxx', ['xxx','xxx'], 'NOTICE!!!--PC IP CHANGED', ('xxx', 'xxx'))
  • 相关阅读:
    安装使用composer基本流程
    数据库关于group by 两个或以上条件的分析
    PHP中VC6、VC9、TS、NTS版本的区别与用法详解
    Linux 守护进程的启动方法
    PHP安装包TS和NTS的区别
    kubernetes 简单service的例子
    kubernetes 每个node上只能运行一个副本DaemonSet
    kubernetes 利用label标签来绑定到特定node运行pod
    kubernetes 简单yaml文件运行例子deployment
    kubernetes Helm-chart web UI添加
  • 原文地址:https://www.cnblogs.com/GYoungBean/p/6566541.html
Copyright © 2011-2022 走看看