Skip to content

Commit 24a5479

Browse files
committed
fix: log file configurable via env var, log error on permission issue
1 parent c1d0d62 commit 24a5479

2 files changed

Lines changed: 12 additions & 9 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ index_html: |
326326
```bash
327327
LOG_LEVEL=DEBUG # Optional: DEBUG, INFO, WARNING, ERROR (default: DEBUG)
328328
LOG_FORMAT=json # Optional: "text" (default) or "json" for structured logging
329-
LOG_FILE=/var/log/app.log # Optional: Enable file logging to specified path (default: disabled, logs to stderr only)
329+
LOG_FILE=/var/log/app.log # Optional: Log file path (default: "log"), set to "false" to disable file logging
330330
LISTEN_HOST=0.0.0.0 # Optional: Host to bind to (default: *)
331331
LISTEN_PORT=8000 # Optional: Port to listen on (default: 8000)
332332
```

powerdns_api_proxy/logging.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,16 @@ def audit(
9999
logger: AuditLogger = logging.getLogger("powerdns_api_proxy") # type: ignore
100100
logger.addHandler(default_stream_handler)
101101

102-
LOG_FILE = getenv("LOG_FILE")
103-
if LOG_FILE:
104-
file_handler = logging.handlers.RotatingFileHandler(
105-
filename=LOG_FILE, maxBytes=1000**2 * 100, backupCount=5
106-
)
107-
file_handler.setLevel("DEBUG")
108-
file_handler.setFormatter(default_formatter)
109-
logger.addHandler(file_handler)
102+
LOG_FILE = getenv("LOG_FILE", "log")
103+
if LOG_FILE and LOG_FILE.lower() != "false":
104+
try:
105+
file_handler = logging.handlers.RotatingFileHandler(
106+
filename=LOG_FILE, maxBytes=1000**2 * 100, backupCount=5
107+
)
108+
file_handler.setLevel(LOG_LEVEL)
109+
file_handler.setFormatter(default_formatter)
110+
logger.addHandler(file_handler)
111+
except OSError as e:
112+
logger.error(f"Failed to enable file logging to {LOG_FILE}: {e}")
110113

111114
logger.setLevel("DEBUG")

0 commit comments

Comments
 (0)