From 0a062517bddfd6f129d9811dabfa2011a97bda8f Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 31 Mar 2019 22:45:19 +0200 Subject: [PATCH] Fix-length log file date format, retain unix sort. Resolves #1721. --- CHANGELOG.md | 2 ++ evennia/utils/logger.py | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eb72e746d..6bf8f173d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -99,6 +99,8 @@ Web/Django standard initiative (@strikaco) - OOB: Add support for MSDP LIST, REPORT, UNREPORT commands (re-mapped to `msdp_list`, `msdp_report`, `msdp_unreport` inlinefuncs_) - Added `evennia.ANSIString` to flat API. +- Server/Portal log files now cycle to names on the form `server_.log_19_03_08_` instead of `server.log___19.3.8`, retaining + unix file sorting order. ### Utils diff --git a/evennia/utils/logger.py b/evennia/utils/logger.py index bb309eecff..9c834431dd 100644 --- a/evennia/utils/logger.py +++ b/evennia/utils/logger.py @@ -72,7 +72,7 @@ def timeformat(when=None): class WeeklyLogFile(logfile.DailyLogFile): """ - Log file that rotates once per week + Log file that rotates once per week. Overrides key methods to change format """ day_rotation = 7 @@ -84,6 +84,16 @@ class WeeklyLogFile(logfile.DailyLogFile): then = self.lastDate return now[0] > then[0] or now[1] > then[1] or now[2] > (then[2] + self.day_rotation) + def suffix(self, tupledate): + """Return the suffix given a (year, month, day) tuple or unixtime. + Format changed to have 03 for march instead of 3 etc (retaining unix file order) + """ + try: + return '_'.join(["{:02d}".format(part) for part in tupledate]) + except Exception: + # try taking a float unixtime + return '_'.join(["{:02d}".format(part) for part in self.toDate(tupledate)]) + def write(self, data): "Write data to log file" logfile.BaseLogFile.write(self, data)