python对日志的处理及图形显示

1.处理日志的python程序

def read(log):
    with open(log, encoding="UTF-8") as f:
        yield from f

def make_js(log, name):
    res = {}
    for line in read(log):
        line = line.split(" ")
        if len(line) > 10:
            key = line[10]
            value = res.get(key, 0) + 1
            res[key] = value + 1
    # print(res)
    with open("{}.js".format(name), "w") as f:
        f.write("res_data={result}".format(result = res))

make_js("store.log", "store")

# 日志样式
tail -n 3 /data/www/logs/nginx_log/access/store.log
1.1.1.1 - - [07/Feb/2020:19:38:20 -0800] - - "GET /jslibs/select2/select2.full.min.js?201812 HTTP/1.1" 200 23673 "https://store.wondershare.com/checkout/myCart/?code_id=cae3046452b6d2eb7a88f31a3172d752&machine_no=eus&_ga=2.164934399.1772424582.1581129371-825859103.1580980114" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36" 0.000
1.1.1.1 - - [07/Feb/2020:19:38:20 -0800] - - "GET /images/checkout/btn_checkout_en_us.gif HTTP/1.1" 200 2290 "https://store.wondershare.com/checkout/myCart/?code_id=cae3046452b6d2eb7a88f31a3172d752&machine_no=eus&_ga=2.164934399.1772424582.1581129371-825859103.1580980114" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36" 0.000
1.1.1.1 - - [07/Feb/2020:19:38:21 -0800] - - "GET /images/cart/cart.gif HTTP/1.1" 200 86 "https://store.wondershare.com/checkout/myCart/?code_id=cae3046452b6d2eb7a88f31a3172d752&machine_no=eus&_ga=2.164934399.1772424582.1581129371-825859103.1580980114" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36" 0.000 

2.最终生成日志的store.js
res_data={‘302‘: 10, ‘200‘: 90}

3.日志展示的html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="js/echarts.min.js"></script>
    <script src="store.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById(‘main‘));

        // 指定图表的配置项和数据
        var series_data = [], legend_data = [];
        for (var key in res_data) {
            series_data.push(res_data[key]),
                legend_data.push(key);
        }
        var option = {
            title: {
                text: ‘ECharts 入门示例‘
            },
            tooltip: {},
            legend: {
                data:[‘status‘]
            },
            xAxis: {
                data: legend_data
            },
            yAxis: {},
            series: [{
                name: ‘status‘,
                type: ‘bar‘,
                data: series_data
            }]
        };

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
</body>
</html>

原文地址:https://www.cnblogs.com/reblue520/p/12283427.html

时间: 2024-10-30 15:36:19

python对日志的处理及图形显示的相关文章

python 的日志logging模块介绍

最近在写使用python生成App的程序,发现直接用print打印信息不太方便和规范,所以使用了logging日志模块,简单记录下用法,正式项目中应该使用logging.config配置日志,可以实现类似log4j的日志文件大小限制,格式控制,输出位置等. 1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info message') logging.warning(

python logging 日志轮转文件不删除问题

前言 最近在维护项目的python项目代码,项目使用了 python 的日志模块 logging, 设定了保存的日志数目, 不过没有生效,还要通过contab定时清理数据. 分析 项目使用了 logging 的 TimedRotatingFileHandler : 1 #!/user/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import logging 5 from logging.handlers import TimedRotatingFil

python标准日志模块logging的使用方法

最近写一个爬虫系统,需要用到python的日志记录模块,于是便学习了一下.python的标准库里的日志系统从Python2.3开始支持.只要import logging这个模块即可使用.如果你想开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件,只要这样使用: 复制代码代码如下: import logging# 创建一个loggerlogger = logging.getLogger('mylogger')logger.setLevel(logging.DEBUG)# 创建一个han

python 监控日志并发送邮件报警

#!/usr/bin/env python #coding:utf8 import re import os import time import smtplib import socket import fcntl import struct from email.mime.text import MIMEText def get_ip_address(ifname):     s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)     r

python 的日志logging模块学习

最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stackoverflow上查询到的一些内容. 官方文档 技术博客 基本用法 下面的代码展示了logging最基本的用法. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # -*- cod

python 的日志相关应用

python日志主要用logging模块; 示例代码如下: #coding:utf-8 import logging class logger(): ''' %(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s ''' format_dict = { 1 : logging.Formatter('%(asctime)s - %(filename)s-[line:%(lineno)d]-%(name)s - %(le

python学习日志_for

几天前就开始学python了,终于学到循环了,写写日志方便日后查询 刚刚用if elif fof 完成的小游戏

Python学习日志2语法-20150716

先导日志篇: 1.变量定义 直接定义: a=10 b=23 c=a+b print(c) 2.判断语句: #coding = utf-8 Python并不能够识别Utf-8,所以要注释一下 score=90 if score >=70 : print("nice") elif score >=60 : print("及格") elif score >=30; print ("不及格") else print("很差&q

Python学习日志9月13日

p { margin-bottom: 0.25cm; line-height: 120% } 昨天的学习日志没有写,乱忙了一整天,政治电脑. 好奇心重,想要给电脑装上传说中LInux操作系统,各种小问题折腾到半夜,今天又折腾到晚上才真正的装上系统. 可是装上系统后又发现各种的不好用.虽然界面比win7要好看很多,很舒服,下个软件却要设置java的环境变量,而我连java是什么玩意都不知道.思维导图不能用了,又得想别的办法,对我来说这是非常重要的工具啊.简直没有它无法从事脑力活动. 因为前天晚上也