From 900d46fc3a2499c43caf9d4a8206fe06c88585cf Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Sat, 14 Feb 2026 19:54:14 +0000 Subject: [PATCH] trying to fix logging on server --- core/views/expo.py | 6 +++--- settings.py | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/core/views/expo.py b/core/views/expo.py index ffa39e24..2697def3 100644 --- a/core/views/expo.py +++ b/core/views/expo.py @@ -70,7 +70,7 @@ def spider(request, path): """These are simple filename filters set in urls.py that we know we don't have any of in troggle, e.g. urls ending in "_edit_edit" or .php """ - return logger404(request, path) + return logger404(request, path, "BOGUS PATH ATTACK") # return redirect("/?#") # so that suffixes applied by spider are no longer part of the url def map(request): @@ -300,7 +300,7 @@ def logger404(request, path, e=None): logmsg = f"[{meta['REMOTE_ADDR']:>15}] '/{path}' FILE NOT FOUND 404" logger.warning(logmsg) else: - logmsg = f"[{meta['REMOTE_ADDR']:>15}] '/{path}' EXCEPTION:'{e}'" + logmsg = f"[{meta['REMOTE_ADDR']:>15}] '/{path}' '{e}'" logger.warning(logmsg) return render(request, "pagenotfound.html", {"path": path}, status=404) @@ -355,7 +355,7 @@ def expopage(request, path): except FileNotFoundError as e: return logger404(request, path) except Exception as e: - return logger404(request, path, e) + return logger404(request, path, f"EXCEPTION {e}") def getmimetype(path): diff --git a/settings.py b/settings.py index c8f870da..bbb93a72 100644 --- a/settings.py +++ b/settings.py @@ -88,6 +88,11 @@ class RequireDevServerTrue(logging.Filter): PRIMARY_LOG_DIR = Path("/var/log/troggle") FALLBACK_LOG_DIR = Path("/home/psargent/var-log-troggle") log_filename = "troggle.log" + +if DEVSERVER: + logging_class = "logging.handlers.RotatingFileHandler" +else: + logging_class = "logging.handlers.RotatingFileHandler" def get_valid_log_path(): try: @@ -99,6 +104,14 @@ def get_valid_log_path(): except (PermissionError, OSError): FALLBACK_LOG_DIR.mkdir(parents=True, exist_ok=True) return FALLBACK_LOG_DIR / log_filename + except Exception as e: + FALLBACK_LOG_DIR.mkdir(parents=True, exist_ok=True) + logpath = FALLBACK_LOG_DIR / log_filename + with logpath.open(mode="a", encoding="utf-8") as lp: + stamp = datetime.now().isoformat(sep=' ', timespec='seconds') + lp.write(f"{stamp} [000.000.000.000] /var/log/troggle.log EXCEPTION IN SETTING LOG DIR '{e}'\n") + return logpath + final_log_path = get_valid_log_path() @@ -129,7 +142,7 @@ LOGGING = { "handlers": { "file": { "level": "WARNING", - "class": "logging.handlers.RotatingFileHandler", + "class": logging_class, "filename": final_log_path, "maxBytes": 1024 * 1024 * 5, "backupCount": 5,