• python 实现cpu每分钟使用率-附加logger日志


    #coding=utf-8
    #!/usr/bin/python3
    
    import psutil
    import time
    import log
    
    record_interval = 60 # record is second
    logger=log.logger()
    def getCpu():
        logger.info("%s"%"Go to the get CPU function.")
        try:
            cpu = str(psutil.cpu_percent(interval=record_interval ))+"%"
        except Exception as e:
            logger.error("%s"%e)
            cpu=" "
        return cpu
    
    def main():
        logger.info("Coming in main function.")
        now = time.strftime("%Y-%m-%d-%H-%M-%S",time.localtime(time.time()))
        fname = now+"-report.csv"
        try:
            with open('%s' % fname,'w') as f:
                title_str = "Time, CPU "
                print(title_str)
                f.write("Time, CPU "+"
    ")#title
                for i in range(4):
                    info = getCpu()
                    tmp_str = "%3s,%6s" % (i*record_interval,info)
                    print(tmp_str)
                    f.write(tmp_str+"
    ")
        except IOError as e:
            logger.error(e)
            pass
    
    if __name__=="__main__":
        logger.info("Starting Now")
        main()
        logger.info("End Program")

    logger日志

    # -*- coding: utf-8 -*-
    # 初始化logger
    import logging
    import logging.handlers
    import sys
    
    import time
    
    
    class logger:
        log = logging.getLogger()
        # 日志格式,可以根据需要设置
        fmt = logging.Formatter('[%(asctime)s][%(filename)s][%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S')
        logname = './log.log'
        # 日志输出到文件,日志名称,大小,保存个数
        handle1 = logging.handlers.RotatingFileHandler(logname, maxBytes=1024*1024*8, backupCount=3)
        handle1.setFormatter(fmt)
        # 同时输出到屏幕,便于实施观察
        handle2 = logging.StreamHandler(stream=sys.stdout)
        handle2.setFormatter(fmt)
        log.addHandler(handle1)
        log.addHandler(handle2)
    
        # 设置日志基本,这里设置为INFO,表示只有INFO级别及以上的会打印
        log.setLevel(logging.INFO)
    
        # 日志接口,用户只需调用这里的接口即可,这里只定位了INFO, WARNING, ERROR三个级别的日志,可根据需要定义更多接口
        @classmethod
        def info(cls, msg):
            cls.log.info(msg)
            return
    
        @classmethod
        def warning(cls, msg):
            cls.log.warning(msg)
            return
    
        @classmethod
        def error(cls, msg):
            cls.log.error(msg)
            return
  • 相关阅读:
    Activity(二)
    channelartlist标签的使用
    把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官方。Duplicate entry '2' for key 'PRIMARY'
    TP5.0验证器使用方法
    TP5.0登录验证码实现
    dede列表页限制标题长度
    dede搜索页做法
    表单正则验证简便方法
    解决织梦dedecms文档关键字(自动内链)php5.5以上失效的问题 urf-8版本的
    织梦dede解决“更新数据库archives表时出错"方法
  • 原文地址:https://www.cnblogs.com/qxh-beijing2016/p/13253841.html
Copyright © 2020-2023  润新知