テキスト出力ログを5秒ごとにサイズ確認してファイルサイズが変わったら画面に表示するサンプルコード
このままテキストに入りつけて「.hta」で保存したら動きます。
<html>
<head>
<title>ログをリアルタイムに画面表示する</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.19/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.19/themes/redmond/jquery-ui.css">
</head>
<body>
ログ表示
<div>
<input id='log_path' type='text' value="err.log"><span id='err_msg'></span>
</div>
<table border=1 width=100%>
<thead>
<tr><th>ログ</th></tr>
</thead>
<tbody id='table_body'>
</tbody>
</table>
<script type="text/javascript">
var file_size = "";
$(document).ready(function(){
setInterval("checkLog()", 5000);
});
function checkLog(){
var fs = new ActiveXObject("Scripting.FileSystemObject");
var log_path = $("#log_path").val();
var $msg = $("#err_msg")
if (fs.FileExists(log_path)) {
if (file_size != fs.GetFile(log_path).Size) {
var file = fs.OpenTextFile(log_path);
var text = file.ReadAll();
file.Close();
view_update(text);
file_size = fs.GetFile(log_path).Size;
var d = new Date();
$msg.html("最終読込:" + (d.getMonth() + 1) + "/" + d.getDate() + " " + d.getHours() + ":" + d.getMinutes());
}
} else {
$msg.html("ログファイルがありません。");
}
}
function view_update(text){
var $tbdy = $("#table_body");
$("#table_body").html("");
var lines = text.split("\r\n");
for(var i in lines) {
if (lines[i]) {
$tbdy.append(
$('<tr />').append(
$('<td />').html(lines[i])));
}
}
}
</script>
</body>
</html>
なんかいろいろカスタマイズしたら使えそうです。
