动态输出日志

后端:

def test(request):

    import os    import time    t = time.time()    logfilename = time.strftime(‘%Y%m%d%H%M%S‘) + ‘.log‘    # print logfilename    # status, out = os.system("/tmp/sss.sh + ‘ ‘ + ‘test‘>/tmp/%s" % logfilename)    # out = os.system("/tmp/sss.sh ‘test‘>/tmp/%s" % logfilename)    logfilepath = ‘/tmp/%s‘ % logfilename    t = threading.Thread(target=shell_os, args=(logfilename,))    t.setDaemon(True)    t.start()    f = file(‘/tmp/20160903083315.log‘, ‘r+‘)    # time.sleep(10)    # out = f.readline()    # pos = f.tell()    # print out    # f.close()    # return HttpResponse(out)    return render_to_response(‘myajax.html‘, {‘title‘: logfilepath, ‘output‘: ‘test‘,})

import os

def shell_os(logfilename):    out = os.system("/tmp/sss.sh ‘test‘>/tmp/%s" % logfilename)    return out

def myajax(request):    # print request.method

    if request.method == ‘POST‘:        print request.method        print request        filepath = request.POST.get(‘filepath‘)        print filepath        pos = request.POST.get(‘pos‘)        print pos

        f = file(filepath, ‘r+‘)        print ‘-------------‘        f.seek(int(pos))        print ‘-------------‘        out = f.readline()        pos = f.tell()        f.close()        print ‘==========out‘, out, pos        ret = {‘out‘: out, ‘posh‘: pos}        return HttpResponse(json.dumps(ret))    else:        return HttpResponse(‘GET‘)

前端:
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Test</title>    <style>        .top {            margin: 20px;            padding: 20px;            border: 1px solid #ddd;        }

        .commom {            margin: 20px;            padding: 20px;            border: 1px solid #ddd;        }

    </style></head><body><div class="top">    <div style="float: left">[正在执行]</div>    <div style="float: left">{{ title }}</div></div><div class="commom">{{ output }}</div>

</body><script src="/statics/jquery/jquery-3.1.0.min.js" type=text/javascript></script><script type=text/javascript>    pos = 0;
function myajax() {    //console.log({{ title }})    var filepath = "{{ title }}";

    //console.log(filepath);    $.ajax({        url: "/web/myajax/",        type: "POST",        data: {filepath: filepath, pos: pos},        success: function (callback) {            var obj = jQuery.parseJSON(callback);            pos = obj.posh;            var old_html = $(".commom").html();            var new_html = old_html + obj.out + "<br>";            if (obj.out.indexOf(‘FINISH‘) > 0) {                clearInterval(logAjax)            }            if (obj.out == ‘‘) {                console.log(obj.out);            }            else {                $(".commom").html(new_html);

            }

            //console.log(obj.out);            //console.log($(".commom").html())        },        error: function () {            console.log(‘error‘)        }

    })}
    var logAjax = setInterval(‘myajax()‘, 500);</script></html>

#用clearInterval(logAjax )来结束

时间: 2024-08-06 10:44:51

动态输出日志的相关文章

log4j 动态改变日志的输出路径

实际背景 客户有客户端多台,每个客户端有自己的唯一编号.输出的日志要根据每个客户端的编号生成,例如10001_demo.log,10002_demo.log 方法 1.网上给出的第一种方法是: 在log4j的配置文件中log4j.appender.file.File=${log.dir}/${log.file}中,使用${}形式定义变量,在后台使用 System.setProperty("log.dir","/home/..."),来设置变量值.但我测试了多次,这样

实时查看 Tomcat 输出日志

命令: tail 输出文件的尾部内容,默认显示最后十行 对应 head 命令 —— 显示文件的头部内容 应用: 常用来动态监视文件的尾部内容增长情况(如监视日志文件变化) 参数: tail -f file 动态跟踪file的增长情况 必须保证在执行tail命令时文件file已存在 中断: Ctrl + C 新终端窗口中直接kill all tail 实时监视 Tomcat 输出日志: tail -f /var/log/tomcat6/catalina.out

Log4cpp配置文件及动态调整日志级别的方法

一.log4cpp概述 Log4cpp是一个开源的C++类库,它提供了C++程序中使用日志和跟踪调试的功能,它的优点如下: 提供应用程序运行上下文,方便跟踪调试: 可扩展的.多种方式记录日志,包括命令行.文件.回卷文件.内存.syslog服务器.Win事件日志等: 可以动态控制日志记录级别,在效率和功能中进行调整: 所有配置可以通过配置文件进行动态调整: 多语言支持,包括Java(log4j),C++(log4cpp.log4cplus),C(log4c),python(log4p)等: 二.原

SpringBoot系列十一:SpringBoot整合Restful架构(使用 RestTemplate 模版实现 Rest 服务调用、Swagger 集成、动态修改日志级别)

1.概念:SpringBoot整合Restful架构 2.背景 Spring 与 Restful 整合才是微架构的核心,虽然在整个 SpringBoot(SpringCloud)之中提供有大量的服务方便整合,但是这些 整合都不如 Rest 重要,因为 Rest 是整个在微架构之中进行通讯的基础模式.那么对于 Rest 首先必须对其有一个最为核心的解释: 利用 JSON 实现数据的交互处理.而且 Spring 里面提供有一个非常强大的 RestTemplate 操作模版,利用此模版可以非常轻松的实

springboot的日志框架slf4j (使用logback输出日志以及使用)

1.为什么使用logback? --在开发中不建议使用System.out因为大量的使用会增加资源的消耗.因为使用System.out是在当前线程执行的,写入文件也是写入完毕之后才继续执行下面的程序.而使用Log工具不但可以控制日志是否输出,怎么输出,它的处理机制也是通知写日志,继续执行后面的代码不必等日志写完. --个人推荐使用SLF4J(Simple Logging Fa?ade For Java)的logback来输出日志,其比log4j效率高.     --Spring Boot 提供了

Spring Boot 使用 Log4j2 &amp; Logback 输出日志到 EKL

文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK 是 Elasticsearch , Logstash, Kibana 的缩写,Elasticsearch 是开源分布式搜索引擎,提供搜集.分析.存储数据等功能,Logstash 主要是用来日志的搜集.分析.过滤日志的工具,Kibana 为 Elasticsearch 提供分析和可视化的 Web 平台

log4j2和logback动态修改日志级别工具类

工作中,有些场景需要动态修改线上日志记录器的打印日志级别, 本文的两个工具类使用的版本如下: ----------------logback--------------------- <dependency>   <groupId>ch.qos.logback</groupId>   <artifactId>logback-core</artifactId>   <version>1.1.8</version></d

对于Android系统Log输出日志的封装LogUtils

MainActivity如下: package cc.cn.logutil; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 对于Android系统Log输出日志的封装LogUtils * 1 可修改LogUtils中的LEVEL值觉得哪些级别的日志可以输出. * 所以方便选择性输出日志或者屏蔽日志输出 * 2 输出的日志除了本想输出的信息外还包含了该日志输出时所属 * 的线程,类,方法名,已经在该方法

【转】kettle 的内存设置及输出日志的时间类型

本文转载自:http://blog.csdn.net/dqswuyundong/archive/2010/10/19/5952004.aspx 设置kettle的内存 REM ******************************************************************REM ** Set java runtime options                                     **REM ** Change 256m to high