From afbab63f6f7fdb44ac04b7e1b267b7d4098b4948 Mon Sep 17 00:00:00 2001 From: theweaklink Date: Thu, 19 Feb 2026 16:12:54 +0100 Subject: [PATCH] fix duplicated logs issue for OneCode Cloud --- docs/changelogs/1.2.1.md | 22 ++++++++++++++++++++++ docs/reference/cli/cli.md | 2 +- mkdocs.yml | 1 + onecode/__init__.py | 2 +- onecode/base/logger.py | 5 ++++- pyproject.toml | 2 +- tests/conftest.py | 3 +++ tests/unit/cli/test_check.py | 2 +- 8 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 docs/changelogs/1.2.1.md diff --git a/docs/changelogs/1.2.1.md b/docs/changelogs/1.2.1.md new file mode 100644 index 0000000..d820b87 --- /dev/null +++ b/docs/changelogs/1.2.1.md @@ -0,0 +1,22 @@ +## Bug Fixes + +:octicons-issue-opened-24: Issue Ref | :fontawesome-solid-thumbtack: Summary | :material-message-text: Description +-|-|- +[No Ref] | Fix duplicated log message in OneCode Cloud environment | From times to times, logger event would be propagated back to the root Logger and therefore be printed twice. + + +## Enhancements + +:octicons-issue-opened-24: Issue Ref | :fontawesome-solid-thumbtack: Summary | :material-message-text: Description +-|-|- + + +## New Features + +:octicons-issue-opened-24: Issue Ref | :fontawesome-solid-thumbtack: Summary | :material-message-text: Description +-|-|- + + +## :warning: Breaking changes + +None diff --git a/docs/reference/cli/cli.md b/docs/reference/cli/cli.md index b12ad62..14bc08c 100644 --- a/docs/reference/cli/cli.md +++ b/docs/reference/cli/cli.md @@ -43,7 +43,7 @@ [INFO] - |OneCode|.check.py:52 - ✅ argparse [INFO] - |OneCode|.check.py:52 - ✅ importlib [INFO] - |OneCode|.check.py:52 - ✅ json - [INFO] - |OneCode|.check.py:52 - ✅ onecode (1.2.0) + [INFO] - |OneCode|.check.py:52 - ✅ onecode (1.2.1) [INFO] - |OneCode|.check.py:52 - ✅ os ``` diff --git a/mkdocs.yml b/mkdocs.yml index 170f541..25ec3cf 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -36,6 +36,7 @@ nav: - Project: reference/base/project.md - FAQs: faq.md - Changelogs: + - 1.2.1: changelogs/1.2.1.md - 1.2.0: changelogs/1.2.0.md - 1.1.0: changelogs/1.1.0.md - 1.0.0: changelogs/1.0.0.md diff --git a/onecode/__init__.py b/onecode/__init__.py index 1149f4b..d69ccab 100644 --- a/onecode/__init__.py +++ b/onecode/__init__.py @@ -1,7 +1,7 @@ # SPDX-FileCopyrightText: 2023-2024 DeepLime # SPDX-License-Identifier: MIT -__version__ = "1.2.0" +__version__ = "1.2.1" from .base import * diff --git a/onecode/base/logger.py b/onecode/base/logger.py index ec9d5cd..19417d5 100644 --- a/onecode/base/logger.py +++ b/onecode/base/logger.py @@ -144,7 +144,10 @@ def reset( handler = logging.StreamHandler(sys.stdout) handler.setFormatter(ColoredFormatter(Project().get_config(ConfigOption.LOGGER_COLOR))) - logging.getLogger(Env.ONECODE_LOGGER_NAME).addHandler(handler) + + base_logger = logging.getLogger(Env.ONECODE_LOGGER_NAME) + base_logger.addHandler(handler) + base_logger.propagate = False self.set_level(logging.INFO) @check_type diff --git a/pyproject.toml b/pyproject.toml index 04d9f25..d01e517 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "onecode" -version = "1.2.0" +version = "1.2.1" description = "Python skeleton and library for OneCode projects" readme = "README.md" authors = ["DeepLime "] diff --git a/tests/conftest.py b/tests/conftest.py index da0ab57..faf619b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,4 @@ +import logging import os import pytest @@ -11,6 +12,8 @@ def clear_project(): del os.environ[Env.ONECODE_PROJECT_DATA] Project().reset() Logger().reset() + logger = logging.getLogger(Env.ONECODE_LOGGER_NAME) + logger.propagate = True Project().mode = Mode.EXECUTE diff --git a/tests/unit/cli/test_check.py b/tests/unit/cli/test_check.py index 16b252e..0870ffe 100644 --- a/tests/unit/cli/test_check.py +++ b/tests/unit/cli/test_check.py @@ -76,7 +76,7 @@ def test_check_modules(): 'msg': None } - assert modules['onecode']['version'].split('.dev')[0] == "1.2.0" + assert modules['onecode']['version'].split('.dev')[0] == "1.2.1" assert modules['onecode']['in_env'] is True assert modules['onecode']['builtin'] is False assert modules['onecode']['dist_name'] == 'onecode'