我希望有人有想法或可以给我一些有关我的问题的意见。
开始场景:.txt日志文件是由软件创建的,我尝试创建一个网站查询,该查询显示该日志中包含的错误消息,彼此之间清楚地排列。
到目前为止,我已经拥有将文件读取为变量,将内容映射为数组并将其拆分为单行的代码。
<html>
<div>
Select Errorlog:
<input type="file" id="fileInput">
</div>
<pre id="displayFile"></pre>
<script>
var fileInput = document.getElementById('fileInput');
fileInput.addEventListener('change', function(e) {
var file = fileInput.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var dateiinhalt = reader.result;
var arr = dateiinhalt.split("\n");
document.getElementById("Errorlog").innerHTML = arr[1];
};
reader.readAsText(file);
});
</script>
<p id="Errorlog"></p>
</html>
这很容易,但是现在我很想过滤数组或显示数组的某些索引值。
日志文件本身看起来像
2020-02-26 00:00:00 | ERROR | Message
2020-02-26 00:00:01 | INFO | NewEvent
2020-02-26 00:00:01 | ERROR | Message 2
目标是显示包含“错误”的每一行。我尝试了几种过滤器/搜索功能,但尝试的所有方法均无效(例如array.prototype.filter或indexOf)。
假设在.split()
之后,您有一个日志行数组作为字符串,一种用于过滤错误的简单方法是:
var arr = dateiinhalt.split("\n");
arr = arr.filter(line => line.indexOf("ERROR") >= 0);
或更旧的样式:
arr = arr.filter(function(line) { return line.indexOf("ERROR") >= 0; });