kitty-logger 0.2.0.dev5__tar.gz → 0.2.0.dev6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kitty_logger-0.2.0.dev5/src/kitty_logger.egg-info → kitty_logger-0.2.0.dev6}/PKG-INFO +1 -1
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/pyproject.toml +1 -1
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger/__init__.py +1 -1
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger/_client.py +13 -2
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6/src/kitty_logger.egg-info}/PKG-INFO +1 -1
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/tests/test_kitty_logger.py +13 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/LICENSE +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/README.md +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/setup.cfg +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger/_env.py +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger/_formatters.py +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger/_server.py +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger/_server_main.py +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger/_setup.py +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger.egg-info/SOURCES.txt +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger.egg-info/dependency_links.txt +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger.egg-info/requires.txt +0 -0
- {kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "kitty_logger"
|
|
7
|
-
version = "0.2.0.
|
|
7
|
+
version = "0.2.0.dev6"
|
|
8
8
|
description = "Cross-process logging via a dedicated log server process and SocketHandler."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -110,7 +110,11 @@ def _ensure_kitty_handler() -> logging.Logger:
|
|
|
110
110
|
return kitty
|
|
111
111
|
|
|
112
112
|
|
|
113
|
-
def getLogger(
|
|
113
|
+
def getLogger(
|
|
114
|
+
name: str | None = None,
|
|
115
|
+
*,
|
|
116
|
+
level: int | str | None = None,
|
|
117
|
+
) -> logging.Logger:
|
|
114
118
|
"""返回挂在 ``kitty`` 命名空间下的 logger。
|
|
115
119
|
|
|
116
120
|
可在 :func:`kitty_logger.setup_logging` 之前调用——例如在模块顶层
|
|
@@ -126,7 +130,14 @@ def getLogger(name: str | None = None) -> logging.Logger:
|
|
|
126
130
|
会被转换为 ``logging.getLogger("kitty.foo")``——日志记录里
|
|
127
131
|
``%(name)s`` 字段会带 ``kitty.`` 前缀,这是有意保留的标记,方便
|
|
128
132
|
和第三方库日志区分。
|
|
133
|
+
:param level: 可选;为该 logger 设置 level。等价于 ``getLogger(name)``
|
|
134
|
+
之后再调 ``.setLevel(level)``。``None`` 表示保持默认 ``NOTSET``,
|
|
135
|
+
向上沿用 ``kitty`` 根 logger 的级别。支持 ``logging.DEBUG`` 这样
|
|
136
|
+
的整数,也支持 ``"DEBUG"`` 这样的级别名(大小写不敏感)。
|
|
129
137
|
"""
|
|
130
138
|
_ensure_kitty_handler()
|
|
131
139
|
full = KITTY_NAMESPACE if not name else f"{KITTY_NAMESPACE}.{name}"
|
|
132
|
-
|
|
140
|
+
logger = logging.getLogger(full)
|
|
141
|
+
if level is not None:
|
|
142
|
+
logger.setLevel(level)
|
|
143
|
+
return logger
|
|
@@ -132,6 +132,19 @@ def test_get_logger_before_setup_works(tmp_path: Path):
|
|
|
132
132
|
_wait_for_lines(log_path, lambda t: "late-binding-ok" in t)
|
|
133
133
|
|
|
134
134
|
|
|
135
|
+
def test_get_logger_level_param():
|
|
136
|
+
"""``level=`` 参数等价于 ``.setLevel(level)``,支持整数与级别名。"""
|
|
137
|
+
log_int = kitty_logger.getLogger("lvl.int", level=logging.DEBUG)
|
|
138
|
+
assert log_int.level == logging.DEBUG
|
|
139
|
+
|
|
140
|
+
log_str = kitty_logger.getLogger("lvl.str", level="WARNING")
|
|
141
|
+
assert log_str.level == logging.WARNING
|
|
142
|
+
|
|
143
|
+
# 不传 level:保持默认 NOTSET,沿用祖先级别。
|
|
144
|
+
log_default = kitty_logger.getLogger("lvl.default")
|
|
145
|
+
assert log_default.level == logging.NOTSET
|
|
146
|
+
|
|
147
|
+
|
|
135
148
|
def test_non_loopback_raises(tmp_path: Path):
|
|
136
149
|
# 非 loopback 必须直接拒绝;0.0.0.0 在大多数系统都能 bind,但我们要在
|
|
137
150
|
# bind 之前就 ValueError 掉。
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kitty_logger-0.2.0.dev5 → kitty_logger-0.2.0.dev6}/src/kitty_logger.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|