diff --git a/data/interfaces/default/logs.html b/data/interfaces/default/logs.html
index 8412233d..32f5bada 100644
--- a/data/interfaces/default/logs.html
+++ b/data/interfaces/default/logs.html
@@ -33,7 +33,6 @@
-
+
+
+
@@ -82,8 +84,7 @@
Message |
-
-
+
@@ -260,6 +261,8 @@
$("#plex-log-levels").hide();
$("#clear-logs").show();
$("#download-plexpylog").show()
+ $("#download-plexserverlog").hide()
+ $("#download-plexscannerlog").hide()
$("#clear-notify-logs").hide();
$("#clear-login-logs").hide();
loadPlexPyLogs(selected_log_level);
@@ -271,6 +274,8 @@
$("#plex-log-levels").show();
$("#clear-logs").hide();
$("#download-plexpylog").hide()
+ $("#download-plexserverlog").show()
+ $("#download-plexscannerlog").hide()
$("#clear-notify-logs").hide();
$("#clear-login-logs").hide();
loadPlexLogs();
@@ -282,6 +287,8 @@
$("#plex-log-levels").show();
$("#clear-logs").hide();
$("#download-plexpylog").hide()
+ $("#download-plexserverlog").hide()
+ $("#download-plexscannerlog").show()
$("#clear-notify-logs").hide();
$("#clear-login-logs").hide();
loadPlexScannerLogs();
@@ -293,6 +300,8 @@
$("#plex-log-levels").hide();
$("#clear-logs").hide();
$("#download-plexpylog").hide()
+ $("#download-plexserverlog").hide()
+ $("#download-plexscannerlog").hide()
$("#clear-notify-logs").show();
$("#clear-login-logs").hide();
loadNotificationLogs();
@@ -304,6 +313,8 @@
$("#plex-log-levels").hide();
$("#clear-logs").hide();
$("#download-plexpylog").hide()
+ $("#download-plexserverlog").hide()
+ $("#download-plexscannerlog").hide()
$("#clear-notify-logs").hide();
$("#clear-login-logs").show();
loadLoginLogs();
@@ -339,6 +350,13 @@
window.location.href = "download_log";
});
+ $("#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";
+ });
$("#clear-notify-logs").click(function () {
$("#confirm-message").text("Are you sure you want to clear the PlexPy notification logs?");
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 8ad62ab6..f4ff17c2 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -3282,6 +3282,30 @@ class WebInterface(object):
return serve_download(os.path.join(plexpy.CONFIG.LOG_DIR, log_file), name=log_file)
+ @cherrypy.expose
+ @requireAuth(member_of("admin"))
+ @addtoapi()
+ def download_plex_log(self, **kwargs):
+ """ Download the Plex log file. """
+ log_type = kwargs.get('log_type', 'server')
+
+ log_file = ""
+ if plexpy.CONFIG.PMS_LOGS_FOLDER:
+ if log_type == "server":
+ log_file = 'Plex Media Server.log'
+ log_file_path = os.path.join(plexpy.CONFIG.PMS_LOGS_FOLDER, log_file)
+ elif log_type == "scanner":
+ log_file = 'Plex Media Scanner.log'
+ log_file_path = os.path.join(plexpy.CONFIG.PMS_LOGS_FOLDER, log_file)
+ else:
+ return "Plex log folder not set in the settings."
+
+
+ if log_file and os.path.isfile(log_file_path):
+ return serve_download(log_file_path, name=log_file)
+ else:
+ return "Plex %s log file not found." % log_type
+
@cherrypy.expose
@cherrypy.tools.json_out()
@requireAuth(member_of("admin"))