Make lib.App logging more customizable #55
1 changed files with 16 additions and 4 deletions
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>
commit
90e221e106
|
|
@ -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',
|
||||
|
|
|
|||
Loading…
Reference in a new issue