Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -159,3 +159,6 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
.idea/
/package-lock.json
/profile_fixed.prof
/profile_output.prof
/profile_pytest.prof
2 changes: 1 addition & 1 deletion poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "pythonLogs"
version = "4.0.4"
version = "4.0.5"
description = "High-performance Python logging library with file rotation and optimized caching for better performance"
license = "MIT"
readme = "README.md"
Expand Down Expand Up @@ -32,7 +32,6 @@ classifiers = [

[tool.poetry.dependencies]
python = "^3.10"
pydantic = "^2.11.7"
pydantic-settings = "^2.10.1"
python-dotenv = "^1.1.1"

Expand Down
13 changes: 13 additions & 0 deletions pythonLogs/constants.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# -*- encoding: utf-8 -*-
import logging
from enum import Enum

# File and Directory Constants
Expand Down Expand Up @@ -40,3 +41,15 @@ class RotateWhen(str, Enum):
SUNDAY = "W6"
HOURLY = "H"
DAILY = "D"


# Level mapping for performance optimization
LEVEL_MAP = {
LogLevel.DEBUG.value.lower(): logging.DEBUG,
LogLevel.WARNING.value.lower(): logging.WARNING,
LogLevel.WARN.value.lower(): logging.WARNING,
LogLevel.ERROR.value.lower(): logging.ERROR,
LogLevel.CRITICAL.value.lower(): logging.CRITICAL,
LogLevel.CRIT.value.lower(): logging.CRITICAL,
LogLevel.INFO.value.lower(): logging.INFO,
}
14 changes: 2 additions & 12 deletions pythonLogs/log_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from pathlib import Path
from typing import Callable, Set
from zoneinfo import ZoneInfo
from pythonLogs.constants import DEFAULT_FILE_MODE, LogLevel
from pythonLogs.constants import DEFAULT_FILE_MODE, LEVEL_MAP


# Global cache for checked directories with thread safety and size limits
Expand Down Expand Up @@ -182,17 +182,7 @@ def get_level(level: str) -> int:
write_stderr(f"Unable to get log level. Setting default level to: 'INFO' ({logging.INFO})")
return logging.INFO

level_map = {
LogLevel.DEBUG.value.lower(): logging.DEBUG,
LogLevel.WARNING.value.lower(): logging.WARNING,
LogLevel.WARN.value.lower(): logging.WARNING,
LogLevel.ERROR.value.lower(): logging.ERROR,
LogLevel.CRITICAL.value.lower(): logging.CRITICAL,
LogLevel.CRIT.value.lower(): logging.CRITICAL,
LogLevel.INFO.value.lower(): logging.INFO,
}

return level_map.get(level.lower(), logging.INFO)
return LEVEL_MAP.get(level.lower(), logging.INFO)


def get_log_path(directory: str, filename: str) -> str:
Expand Down