Improve Plex log reader

This commit is contained in:
JonnyWong16 2021-11-29 21:25:48 -08:00
commit d5d3766f90
No known key found for this signature in database
GPG key ID: B1F1F9807184697A
3 changed files with 108 additions and 88 deletions

View file

@ -33,6 +33,19 @@
</select>
</label>
</div>
% if plex_log_files:
<div class="btn-group" id="plex-log-files" style="display: none;">
<label>
<select name="plex-log-files-filter" id="plex-log-files-filter" class="btn" style="color: inherit;">
<option value="">Select Plex Media Server log file</option>
<option disabled>&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;</option>
% for file in plex_log_files:
<option value="${file}">${file}</option>
% endfor
</select>
</label>
</div>
% endif
<div class="btn-group" id="plex-log-levels" style="display: none;">
<label>
<select name="plex-log-level-filter" id="plex-log-level-filter" class="btn" style="color: inherit;">
@ -47,7 +60,6 @@
</div>
<button class="btn btn-dark" id="download-tautullilog"><i class="fa fa-download"></i> Download logs</button>
<button class="btn btn-dark" id="download-plexserverlog" style="display: none;"><i class="fa fa-download"></i> Download logs</button>
<button class="btn btn-dark" id="download-plexscannerlog" style="display: none;"><i class="fa fa-download"></i> Download logs</button>
<button class="btn btn-dark" id="clear-notify-logs" style="display: none;"><i class="fa fa-trash-o"></i> Clear logs</button>
<button class="btn btn-dark" id="clear-newsletter-logs" style="display: none;"><i class="fa fa-trash-o"></i> Clear logs</button>
<button class="btn btn-dark" id="clear-login-logs" style="display: none;"><i class="fa fa-trash-o"></i> Clear logs</button>
@ -59,7 +71,6 @@
<li role="presentation" class="active"><a id="tautulli-logs-btn" href="#tabs-tautulli_log" aria-controls="tabs-tautulli_log" role="tab" data-toggle="tab">Tautulli Logs</a></li>
<li role="presentation"><a id="tautulli-api-logs-btn" href="#tabs-tautulli_api_log" aria-controls="tabs-tautulli_api_log" role="tab" data-toggle="tab">Tautulli API Logs</a></li>
<li role="presentation"><a id="plex-logs-btn" href="#tabs-plex_log" aria-controls="tabs-plex_log" role="tab" data-toggle="tab">Plex Media Server Logs</a></li>
<li role="presentation"><a id="plex-scanner-logs-btn" href="#tabs-plex_scanner_log" aria-controls="tabs-plex_scanner_log" role="tab" data-toggle="tab">Plex Media Scanner Logs</a></li>
<li role="presentation"><a id="plex-websocket-logs-btn" href="#tabs-plex_websocket_log" aria-controls="tabs-plex_websocket_log" role="tab" data-toggle="tab">Plex Websocket Logs</a></li>
<li role="presentation"><a id="notification-logs-btn" href="#tabs-notification_log" aria-controls="tabs-notification_log" role="tab" data-toggle="tab">Notification Logs</a></li>
<li role="presentation"><a id="newsletter-logs-btn" href="#tabs-newsletter_log" aria-controls="tabs-newsletter_log" role="tab" data-toggle="tab">Newsletter Logs</a></li>
@ -114,18 +125,6 @@
<tbody></tbody>
</table>
</div>
<div role="tabpanel" class="tab-pane" id="tabs-plex_scanner_log">
<table class="display" id="plex_scanner_log_table" width="100%">
<thead>
<tr>
<th align="left" id="plex_scanner_timestamp">Timestamp</th>
<th align="left" id="plex_scanner_level">Level</th>
<th align="left" id="plex_scanner_message">Message</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<div role="tabpanel" class="tab-pane" id="tabs-notification_log">
<table class="display" id="notification_log_table" width="100%">
<thead>
@ -268,24 +267,18 @@
});
}
function loadPlexLogs() {
function loadPlexLogs(logfile) {
plex_log_table_options.ajax = {
url: 'get_plex_log?log_type=server',
type: 'POST'
url: 'get_plex_log',
type: 'POST',
data: {
logfile: logfile
}
};
plex_log_table_options.initComplete = bindLogLevelFilter;
plex_log_table = $('#plex_log_table').DataTable(plex_log_table_options);
}
function loadPlexScannerLogs() {
plex_log_table_options.ajax = {
url: 'get_plex_log?log_type=scanner',
type: 'POST'
};
plex_log_table_options.initComplete = bindLogLevelFilter;
plex_scanner_log_table = $('#plex_scanner_log_table').DataTable(plex_log_table_options);
}
function loadNotificationLogs() {
notification_log_table_options.ajax = {
url: 'get_notification_log',
@ -327,11 +320,11 @@
$("#tautulli-logs-btn").click(function () {
$("#tautulli-log-levels").show();
$("#plex-log-files").hide();
$("#plex-log-levels").hide();
$("#clear-logs").show();
$("#download-tautullilog").show();
$("#download-plexserverlog").hide();
$("#download-plexscannerlog").hide();
$("#clear-notify-logs").hide();
$("#clear-newsletter-logs").hide();
$("#clear-login-logs").hide();
@ -341,11 +334,11 @@
$("#tautulli-api-logs-btn").click(function () {
$("#tautulli-log-levels").show();
$("#plex-log-files").hide();
$("#plex-log-levels").hide();
$("#clear-logs").show();
$("#download-tautullilog").show();
$("#download-plexserverlog").hide();
$("#download-plexscannerlog").hide();
$("#clear-notify-logs").hide();
$("#clear-newsletter-logs").hide();
$("#clear-login-logs").hide();
@ -355,11 +348,11 @@
$("#plex-websocket-logs-btn").click(function () {
$("#tautulli-log-levels").show();
$("#plex-log-files").hide();
$("#plex-log-levels").hide();
$("#clear-logs").show();
$("#download-tautullilog").show();
$("#download-plexserverlog").hide();
$("#download-plexscannerlog").hide();
$("#clear-notify-logs").hide();
$("#clear-newsletter-logs").hide();
$("#clear-login-logs").hide();
@ -369,11 +362,11 @@
$("#plex-logs-btn").click(function () {
$("#tautulli-log-levels").hide();
$("#plex-log-files").show();
$("#plex-log-levels").show();
$("#clear-logs").hide();
$("#download-tautullilog").hide();
$("#download-plexserverlog").show();
$("#download-plexscannerlog").hide();
$("#clear-notify-logs").hide();
$("#clear-newsletter-logs").hide();
$("#clear-login-logs").hide();
@ -381,27 +374,13 @@
clearSearchButton('plex_log_table', plex_log_table);
});
$("#plex-scanner-logs-btn").click(function () {
$("#tautulli-log-levels").hide();
$("#plex-log-levels").show();
$("#clear-logs").hide();
$("#download-tautullilog").hide();
$("#download-plexserverlog").hide();
$("#download-plexscannerlog").show();
$("#clear-notify-logs").hide();
$("#clear-newsletter-logs").hide();
$("#clear-login-logs").hide();
loadPlexScannerLogs();
clearSearchButton('plex_scanner_log_table', plex_scanner_log_table);
});
$("#notification-logs-btn").click(function () {
$("#tautulli-log-levels").hide();
$("#plex-log-files").hide();
$("#plex-log-levels").hide();
$("#clear-logs").hide();
$("#download-tautullilog").hide();
$("#download-plexserverlog").hide();
$("#download-plexscannerlog").hide();
$("#clear-notify-logs").show();
$("#clear-newsletter-logs").hide();
$("#clear-login-logs").hide();
@ -411,11 +390,11 @@
$("#newsletter-logs-btn").click(function () {
$("#tautulli-log-levels").hide();
$("#plex-log-files").hide();
$("#plex-log-levels").hide();
$("#clear-logs").hide();
$("#download-tautullilog").hide();
$("#download-plexserverlog").hide();
$("#download-plexscannerlog").hide();
$("#clear-notify-logs").hide();
$("#clear-newsletter-logs").show();
$("#clear-login-logs").hide();
@ -425,11 +404,11 @@
$("#login-logs-btn").click(function () {
$("#tautulli-log-levels").hide();
$("#plex-log-files").hide();
$("#plex-log-levels").hide();
$("#clear-logs").hide();
$("#download-tautullilog").hide();
$("#download-plexserverlog").hide();
$("#download-plexscannerlog").hide();
$("#clear-notify-logs").hide();
$("#clear-newsletter-logs").hide();
$("#clear-login-logs").show();
@ -437,6 +416,12 @@
clearSearchButton('login_log_table', notification_log_table);
});
$("#plex-log-files").on('change', function () {
var logfile = $("option:selected", this).val();
loadPlexLogs(logfile);
clearSearchButton('plex_log_table', plex_log_table);
});
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
$.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();
});
@ -472,11 +457,8 @@
});
$("#download-plexserverlog").click(function () {
window.location.href = "download_plex_log?log_type=server";
});
$("#download-plexscannerlog").click(function () {
window.location.href = "download_plex_log?log_type=scanner";
var logfile = $("option:selected", "#plex-log-files").val();
window.location.href = "download_plex_log?logfile=" + logfile;
});
$("#clear-notify-logs").click(function () {
@ -559,8 +541,6 @@
log_table.ajax.reload();
} else if ($("#tabs-plex_log").hasClass("active")) {
plex_log_table.ajax.reload();
} else if ($("#tabs-plex_scanner_log").hasClass("active")) {
plex_scanner_log_table.ajax.reload();
} else if ($("#tabs-notificaiton_log").hasClass("active")) {
notification_log_table.ajax.reload();
} else if ($("#tabs-login_log").hasClass("active")) {