Make lib.App logging more customizable #55

Merged
Jan Lindemann merged 6 commits from jan/feature/20260810-make-lib-app-logging-more-customizable into master 2026-08-10 20:34:59 +02:00 AGit
Showing only changes of commit 90e221e106 - Show all commits

lib.App: Make default env var names overridable

Add _default_*_env() helper methods that return the environment variable
names, and use them in __init__() instead of hard-coded strings. This
allows subclasses to override the names.

Signed-off-by: Jan Lindemann <jan@janware.com>
Jan Lindemann 2026-08-09 04:58:43 +02:00
Signed by: Jan Lindemann
GPG key ID: 3750640C9E25DD61

View file

@ -43,6 +43,18 @@ class App: # export
default = None,
)
def _default_log_flags_env(self) -> str:
return 'JW_DEFAULT_LOG_FLAGS'
def _default_log_level_env(self) -> str:
return 'JW_DEFAULT_LOG_LEVEL'
def _default_log_file_env(self) -> str:
return 'JW_DEFAULT_LOG_FILE'
def _default_show_backtrace_env(self) -> str:
return 'JW_DEFAULT_SHOW_BACKTRACE'
def __init__(
self,
description: str = '',
@ -114,15 +126,15 @@ class App: # export
self.__args: Namespace | None = None
self.__cmdline: str | None = None
self.__default_log_flags: str = os.getenv(
'JW_DEFAULT_LOG_FLAGS', default = 'stderr,position,prio,color'
self._default_log_flags_env(), default = 'stderr,position,prio,color'
)
self.__default_log_level: str | int | None = os.getenv(
'JW_DEFAULT_LOG_LEVEL', default = NOTICE
self._default_log_level_env(), default = NOTICE
)
self.__default_log_file: str | None = os.getenv(
'JW_DEFAULT_LOG_FILE', default = None
self._default_log_file_env(), default = None
)
backtrace: str | bool = os.getenv('JW_DEFAULT_SHOW_BACKTRACE', False)
backtrace: str | bool = os.getenv(self._default_show_backtrace_env(), False)
self.__back_trace = isinstance(backtrace, str) and backtrace.lower() in {
'1',
'true',