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"))