Docker容器的日志文件每一行都是一个json对象,其包含log、stream、time三个属性,下面的HTML从textarea中读取输入的日志信息,格式化为表格显示。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Docker 容器日志格式化</title>
<style>
body {
font-size: 12px;
font-family: consolas;
} td {
word-break: keep-all;
white-space: nowrap;
} tr, td {
padding-right: 5px;
} tr.stderr {
color: red;
} .goto-top {
position: fixed;
right: 5px;
bottom: 5px;
font-size: 24px;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="top"></div>
<div>
<div>
<textarea id="logs-text"></textarea>
</div>
<div>
<button onclick="format();">格式化</button>
<button onclick="empty();">清空</button>
</div>
</div>
<table>
<thead>
<tr>
<th>行号</th>
<th>时间</th>
<th align="left">日志信息</th>
</tr>
</thead>
<tbody id="logs-tbody"><![data]></tbody>
</table>
<div class="goto-top"><a href="#top">回顶部</a></div>
</body>
<script> function format() {
document.getElementById("logs-tbody").innerHTML = null;
var text = document.getElementById("logs-text").value;
var textArr = text.split("\n");
for (var i = 0; i < textArr.length; i++) {
var logJson = textArr[i].trim();
if (logJson != "") {
try {
var json = JSON.parse(logJson);
} catch (e) {
var errorInfo = "第" + (i + 1) + "行:[" + logJson + "]语法不对,请重新输入需要格式化的日志信息。";
console.error(errorInfo);
console.error(e);
alert(errorInfo);
break;
}
var time = new Date(json.time);
var log = json.log;
var stream = json.stream;
var timeStr = time.getFullYear() + "-" + (time.getMonth() + 1) + "-" + time.getDate()
+ " " + time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds();
var tr = document.createElement("tr");
if (stream == "stderr") {
tr.classList.add("stderr");
}
var html = '<td>' + (i + 1) + '</td><td>' + timeStr + '</td><td>' + log + '</td>';
tr.innerHTML = html;
document.getElementById("logs-tbody").append(tr);
}
}
} function empty() {
document.getElementById("logs-text").value = null;
document.getElementById("logs-tbody").innerHTML = null;
} </script>
</html>

新建HTML文件,插入此代码即可,如果日志文件较大(建议5000行以上),请使用jar包程序

Docker 容器日志格式化的更多相关文章

  1. docker 容器日志集中 ELK + filebeat

    docker 容器日志集中 ELK ELK 基于 ovr 网络下 docker-compose.yaml version: '2' networks: network-test: external: ...

  2. docker容器日志收集方案汇总评价总结

    docker日志收集方案有太多,下面截图罗列docker官方给的日志收集方案(详细请转docker官方文档).很多方案都不适合我们下面的系列文章没有说. 经过以下5篇博客的叙述简单说下docker容器 ...

  3. docker容器日志收集方案(方案二 filebeat+syslog本地日志收集)

    与方案一一样都是把日志输出到本地文件系统使用filebeat进行扫描采集 不同的是输出的位置是不一样的 我们对docker进行如下设置 sudo docker service update  --lo ...

  4. docker容器日志收集方案(方案一 filebeat+本地日志收集)

    filebeat不用多说就是扫描本地磁盘日志文件,读取文件内容然后远程传输. docker容器日志默认记录方式为 json-file 就是将日志以json格式记录在磁盘上 格式如下: { " ...

  5. 实时查看docker容器日志

    实时查看docker容器日志 $ sudo docker logs -f -t --tail 行数 容器名 例:实时查看docker容器名为s12的最后10行日志 $ sudo docker logs ...

  6. docker容器日志清理

    1.先查看磁盘空间 df -h 2.找到容器的containerId-json.log文件,并清理(治标不治本,log迟早还会大的) 查看各个容器的log文件大小 find /var/lib/dock ...

  7. Docker容器日志查看与清理(亲测有效)

    https://blog.csdn.net/yjk13703623757/article/details/80283729 1. 问题 docker容器日志导致主机磁盘空间满了.docker logs ...

  8. docker 容器 日志占用空间过大问题处理

    docker 容器 日志占用空间过大问题处理 # 2017 10 09 优化docker 运行产生的日志 path=/var/lib/docker/containers/ cd $path for f ...

  9. 解决docker容器日志导致主机磁盘空间满了的情况

    日志文件在   /var/lib/docker/containers/<docker_container_id>/   目录下 查看日志大小 vim /opt/docker_log_siz ...

随机推荐

  1. Dynamics 365新特性介绍:在视图中显示图片和提示

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复242或者20161230可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  2. SVN系列操作(一)

    SVN是什么? SVN是Subversion的简称,是一个开放源代码的版本控制系统,常用于软件开发项目中,实现代码.文档等的历史版本保存.共享和权限管理. 进入SVN本地目录,第一步操作就是updat ...

  3. JS的MD5加密

    /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as d ...

  4. SpreadJS使用进阶指南 - 使用 NPM 管理你的项目

    前言 SpreadJS作为一款性能出众的纯前端电子表格控件,自2015年发布以来,已经被广泛应用于各领域“在线Excel”数据管理项目中.NPM,作为管理Node.js库最有力的手段,解决了很多Nod ...

  5. iOS----------禁止输入汉字

    说明: ^.*[\u4e00-\u9fa5].*$ 是否包含中文^[\u4E00-\u9FA5]+$ 是否全中文 - (BOOL)textField:(UITextField *)textField ...

  6. Workspace in use or cannot be created, choose a different one.

      eclipse 使用一段时间后,有时会因为一些故障自己就莫名奇妙的关闭了,再打开时有时没有问题,有时有会提示错误 Workspace Unavailable: Workspace in use o ...

  7. 关于MongoDB时间格式转换和时间段聚合统计的用法总结

    一 . 背景需求 在日常的业务需求中,我们往往会根据时间段来统计数据.例如,统计每小时的下单量:每天的库存变化,这类信息数据对运营管理很重要. 这类数据统计依赖于各个时间维度,年月日.时分秒都有可能. ...

  8. ibm z14大型主机介绍

    IBM z14™大型主机 (z14)被设计为数字经济中值得信任的基础架构.它提供  特性和功能以满足对于新服务和更佳客户体验的需求,同时保护日益  增长的数据量,并遵从日益复杂的法规.IBM z14 ...

  9. A Deep Learning-Based System for Vulnerability Detection

    本篇文献作者提出了一种基于深度学习来检测软件漏洞的方案.       摘要:作者开始基于深度学习的漏洞检测研究,是为了减轻专家手工定义特性的繁琐任务,需要制定一些指导性原则来适用于深度学习去进行漏洞探 ...

  10. java源码equals和hashCode

    equals public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject ...