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. 统计字符串中字符出现的次数(||和&&的区别)

    var str = "ProsperLee"; // || 返回第一个为真的表达式的值,若全为假则返回最后一个表达式的值 // && 返回第一个为假的表达式的值,若 ...

  2. cesium 之自定义气泡窗口 infoWindow 篇

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 自 ...

  3. Vs2017 无法调试APP

      其实一切都是扯,看看有没有主活动吧 症状:能部署安装,没有快捷方式,不启动调试.XARAMIN不能在XML中配置主活动,会自动根据[Activity(Label = "AA", ...

  4. Android 解析标准的点击第三方文件管理器中的视频的intent

    解析标准的第三方视频intent private List<String> mCurPlayList = new ArrayList<String>(); private in ...

  5. nginx配置静态项目

    当nignx可以加载下面的这个service时 server { listen 8085;  server_name 1.192.60.82; location / { root /etc/nginx ...

  6. 使用Python的列表推导式计算笛卡儿积

    笛卡儿积: 笛卡儿积是一个列表, 列表里的元素是由输入的可迭代类型的元素对构 成的元组,因此笛卡儿积列表的长度等于输入变量的长度的乘积, 如下图: 如果你需要一个列表,列表里是 3 种不同尺寸的 T ...

  7. ASP.NET Zero--前端应用程序

    前端应用程序 ASP.NET Zero包含可以作为您的公共网站或应用程序着陆页的起点的前端页面.首次运行项目时,您会看到主页如下所示: 这里有两页:主页和关于.这些页面的内容只是占位符和演示目的.您可 ...

  8. sqlmap 基本应用

    sqlmap 基本应用: sqlmap详细命令: -is-dba 当前用户权限(是否为root权限) -dbs 所有数据库 -current-db 网站当前数据库 -users 所有数据库用户 -cu ...

  9. 解决sqlserver数据库显示单个用户

    今天突然发现数据库显示为单个用户并且,访问速度超慢,执行以下语句解决了 USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQ ...

  10. 20180831-Linux环境下Python 3.6.6 的安装说明

    20180831-Linux环境下Python 3.6.6 的安装说明 摘要:Python3 安装部署,普通用户,编译安装 Author: andy_yhm@yeah.net Date: 201808 ...