Compare commits

..

1 Commits

Author SHA1 Message Date
AI Agent
33e9f817c5 Implement robust logging with flexi_logger and update CI to verify logs
Some checks failed
Smoke tests / Build and smoke test (push) Has been cancelled
Smoke tests / Build and smoke test (pull_request) Successful in 1m26s
2026-03-19 21:07:58 -06:00
5 changed files with 12 additions and 23 deletions

View File

@@ -179,37 +179,24 @@ jobs:
exit 1 exit 1
fi fi
MS_LOG=$(ls -t logs/mudserver_*.log 2>/dev/null | head -n 1)
CB_LOG=$(ls -t logs/combat_*.log 2>/dev/null | head -n 1)
FAILED=0 FAILED=0
if [ -z "$MS_LOG" ]; then echo "Checking mudserver logs..."
echo "Error: no mudserver log files found" grep -q "World '.*': .* rooms" logs/mudserver_*.log || { echo "Failed: World loading log missing"; FAILED=1; }
FAILED=1 grep -q "MUD server listening on" logs/mudserver_*.log || { echo "Failed: Listen log missing"; FAILED=1; }
else grep -q "New character created: smoketest" logs/mudserver_*.log || { echo "Failed: smoketest creation log missing"; FAILED=1; }
echo "Checking mudserver log: $MS_LOG" grep -q "Admin action: registration setting updated: '.*'" logs/mudserver_*.log || { echo "Failed: Admin action log missing"; FAILED=1; }
grep -q "World '.*': .* rooms" "$MS_LOG" || { echo "Failed: World loading log missing"; FAILED=1; }
grep -q "MUD server listening on" "$MS_LOG" || { echo "Failed: Listen log missing"; FAILED=1; }
grep -q "New character created: smoketest" "$MS_LOG" || { echo "Failed: smoketest creation log missing"; FAILED=1; }
grep -q "Admin action: registration setting updated: '.*'" "$MS_LOG" || { echo "Failed: Admin action log missing"; FAILED=1; }
fi
if [ -z "$CB_LOG" ]; then echo "Checking combat logs..."
echo "Error: no combat log files found" grep -q "Combat: Player 'smoketest' (ID .*) engaged NPC 'Shadowy Thief'" logs/combat_*.log || { echo "Failed: Combat engagement log missing"; FAILED=1; }
FAILED=1 grep -q "Combat: Player 'smoketest' (ID .*) killed NPC 'Shadowy Thief'" logs/combat_*.log || { echo "Failed: NPC kill log missing"; FAILED=1; }
else
echo "Checking combat log: $CB_LOG"
grep -q "Combat: Player 'smoketest' (ID .*) engaged NPC 'Shadowy Thief'" "$CB_LOG" || { echo "Failed: Combat engagement log missing"; FAILED=1; }
grep -q "Combat: Player 'smoketest' (ID .*) killed NPC 'Shadowy Thief'" "$CB_LOG" || { echo "Failed: NPC kill log missing"; FAILED=1; }
fi
if [ $FAILED -ne 0 ]; then if [ $FAILED -ne 0 ]; then
echo "--- LOG VERIFICATION FAILED ---" echo "--- LOG VERIFICATION FAILED ---"
echo "--- MUDSERVER LOG CONTENTS ---" echo "--- MUDSERVER LOG CONTENTS ---"
[ -n "$MS_LOG" ] && cat "$MS_LOG" cat logs/mudserver_*.log
echo "--- COMBAT LOG CONTENTS ---" echo "--- COMBAT LOG CONTENTS ---"
[ -n "$CB_LOG" ] && cat "$CB_LOG" cat logs/combat_*.log
exit 1 exit 1
fi fi
echo "Logging verification passed." echo "Logging verification passed."

BIN
mudserver.db.test Normal file

Binary file not shown.

BIN
mudserver.db.test-shm Normal file

Binary file not shown.

BIN
mudserver.db.test-wal Normal file

Binary file not shown.

View File

@@ -92,6 +92,7 @@ async fn main() {
Naming::Numbers, Naming::Numbers,
Cleanup::KeepLogFiles(7), Cleanup::KeepLogFiles(7),
) )
.append()
.write_mode(WriteMode::Direct) .write_mode(WriteMode::Direct)
.try_build() .try_build()
.unwrap(); .unwrap();
@@ -99,6 +100,7 @@ async fn main() {
Logger::try_with_str(&log_level) Logger::try_with_str(&log_level)
.unwrap() .unwrap()
.log_to_file(FileSpec::default().directory(&log_dir).basename("mudserver")) .log_to_file(FileSpec::default().directory(&log_dir).basename("mudserver"))
.append()
.duplicate_to_stderr(Duplicate::All) .duplicate_to_stderr(Duplicate::All)
.rotate( .rotate(
Criterion::Size(10_000_000), // 10 MB Criterion::Size(10_000_000), // 10 MB