diff --git a/ez_otlp/log/structlog_config.py b/ez_otlp/log/structlog_config.py index d899270..efd2a93 100644 --- a/ez_otlp/log/structlog_config.py +++ b/ez_otlp/log/structlog_config.py @@ -73,26 +73,25 @@ class StructlogHandler: def get_struct_logging_config( - logger_provider: LoggerProvider, + logger_provider: LoggerProvider = None, log_lever: int = logging.DEBUG, output:bool = False, ) -> StructLoggingConfig: + processors = [ + structlog.contextvars.merge_contextvars, + structlog.processors.add_log_level, + structlog.processors.format_exc_info, + structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False), + ] + if logger_provider: + processors.append(StructlogHandler(logger_provider)) if output: - processors=structlog.dev.ConsoleRenderer() - logger_factory = structlog.PrintLoggerFactory() + processors.append(structlog.dev.ConsoleRenderer()) else: - processors = structlog.processors.JSONRenderer(serializer=_dumps) - logger_factory = structlog.BytesLoggerFactory() + processors.append(structlog.processors.JSONRenderer(serializer=_dumps)) return StructLoggingConfig( - processors=[ - structlog.contextvars.merge_contextvars, - structlog.processors.add_log_level, - structlog.processors.format_exc_info, - structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False), - StructlogHandler(logger_provider), - processors, - ], - logger_factory=logger_factory, + processors=processors, + logger_factory=structlog.PrintLoggerFactory() if output else structlog.BytesLoggerFactory(), wrapper_class=structlog.make_filtering_bound_logger(log_lever), cache_logger_on_first_use=True, ) diff --git a/pyproject.toml b/pyproject.toml index cfb68e8..e737a01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ez_otlp" -version = "0.1.0" +version = "0.1.2" description = "ez-otlp is a simple tool that enables convenient use of modern monitoring systems with minimal configuration." readme = "README.md" authors = [{ name = "Martin", email = "martin19980418@gmail.com" }] @@ -13,6 +13,7 @@ dependencies = [ "orjson>=3.10.12", "psutil>=6.1.0", "pydantic-settings>=2.6.1", + "rich>=13.9.4", ] [project.urls] diff --git a/uv.lock b/uv.lock index 9f7e07d..0189a03 100644 --- a/uv.lock +++ b/uv.lock @@ -81,7 +81,7 @@ wheels = [ [[package]] name = "ez-otlp" -version = "0.1.0" +version = "0.1.1" source = { editable = "." } dependencies = [ { name = "opentelemetry-api" }, @@ -91,6 +91,7 @@ dependencies = [ { name = "orjson" }, { name = "psutil" }, { name = "pydantic-settings" }, + { name = "rich" }, ] [package.dev-dependencies] @@ -107,6 +108,7 @@ requires-dist = [ { name = "orjson", specifier = ">=3.10.12" }, { name = "psutil", specifier = ">=6.1.0" }, { name = "pydantic-settings", specifier = ">=2.6.1" }, + { name = "rich", specifier = ">=13.9.4" }, ] [package.metadata.requires-dev] @@ -171,6 +173,27 @@ wheels = [ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", size = 26514 }, ] +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } +wheels = [ + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } +sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +wheels = [ + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, +] + [[package]] name = "opentelemetry-api" version = "1.28.2" @@ -460,6 +483,15 @@ wheels = [ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/5e/f9/ff95fd7d760af42f647ea87f9b8a383d891cdb5e5dbd4613edaeb094252a/pydantic_settings-2.6.1-py3-none-any.whl", hash = "sha256:7fb0637c786a558d3103436278a7c4f1cfd29ba8973238a50c5bb9a55387da87", size = 28595 }, ] +[[package]] +name = "pygments" +version = "2.18.0" +source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } +sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905 } +wheels = [ + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 }, +] + [[package]] name = "python-dotenv" version = "1.0.1" @@ -484,6 +516,19 @@ wheels = [ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, ] +[[package]] +name = "rich" +version = "13.9.4" +source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } +wheels = [ + { url = "https://pypi.tuna.tsinghua.edu.cn/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, +] + [[package]] name = "typing-extensions" version = "4.12.2"