Skip to content

Commit 9ffb584

Browse files
authored
Merge pull request #1 from insistence/main
chore: release version 0.1.1
2 parents bd7bd49 + 2d0e1df commit 9ffb584

File tree

4 files changed

+61
-44
lines changed

4 files changed

+61
-44
lines changed

py_node_manager/__init__.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
from .manager import logger, NodeManager
1+
from .logger import get_logger
2+
from .manager import NodeManager
23

34

4-
__version__ = '0.1.0'
5+
__version__ = '0.1.1'
56

67

7-
__all__ = ['logger', 'NodeManager']
8+
__all__ = ['get_logger', 'NodeManager']

py_node_manager/logger.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import logging
2+
3+
4+
# Custom log formatter to add colors for different log levels and show line numbers
5+
class ColoredFormatter(logging.Formatter):
6+
"""Custom log formatter to add colors for different log levels and show line numbers"""
7+
8+
# ANSI color codes
9+
COLORS = {
10+
'DEBUG': '\033[36m', # cyan
11+
'INFO': '\033[32m', # green
12+
'WARNING': '\033[33m', # yellow
13+
'ERROR': '\033[31m', # red
14+
'CRITICAL': '\033[35m', # purple
15+
'RESET': '\033[0m', # reset
16+
}
17+
18+
def format(self, record: logging.LogRecord) -> str:
19+
# Obtain the color corresponding to the log level
20+
log_color = self.COLORS.get(record.levelname, self.COLORS['RESET'])
21+
reset_color = self.COLORS['RESET']
22+
23+
# Add color to log level
24+
record.levelname = f'{log_color}{record.levelname}{reset_color}'
25+
26+
# Call the format method of the parent class
27+
return super().format(record)
28+
29+
30+
def get_logger(logger: logging.Logger) -> logging.Logger:
31+
"""
32+
Configure and return a custom logger with a specific format and color scheme
33+
34+
Args:
35+
logger (logging.Logger): The logger to configure.
36+
37+
Returns:
38+
logging.Logger: The configured logger.
39+
"""
40+
# Configure the logger
41+
logger.setLevel(logging.INFO)
42+
43+
# Create console processor
44+
console_handler = logging.StreamHandler()
45+
console_handler.setLevel(logging.INFO)
46+
47+
# Create formatter with function name before line number
48+
formatter = ColoredFormatter('%(asctime)s | %(levelname)s | %(name)s:%(funcName)s:%(lineno)d | %(message)s')
49+
console_handler.setFormatter(formatter)
50+
51+
# Add handler to logger
52+
logger.addHandler(console_handler)
53+
54+
return logger

py_node_manager/manager.py

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,10 @@
66
import urllib.request
77
import zipfile
88
from typing import Dict, Optional, Tuple
9+
from .logger import get_logger
910

1011

11-
# Custom log formatter to add colors for different log levels
12-
class ColoredFormatter(logging.Formatter):
13-
"""Custom log formatter to add colors for different log levels and emoji"""
14-
15-
# ANSI颜色代码
16-
COLORS = {
17-
'DEBUG': '\033[36m', # cyan
18-
'INFO': '\033[32m', # green
19-
'WARNING': '\033[33m', # yellow
20-
'ERROR': '\033[31m', # red
21-
'CRITICAL': '\033[35m', # purple
22-
'RESET': '\033[0m', # reset
23-
}
24-
25-
def format(self, record: logging.LogRecord) -> str:
26-
# Obtain the color corresponding to the log level
27-
log_color = self.COLORS.get(record.levelname, self.COLORS['RESET'])
28-
reset_color = self.COLORS['RESET']
29-
30-
# Add color to log level
31-
record.levelname = f'{log_color}{record.levelname}{reset_color}'
32-
33-
# Call the format method of the parent class
34-
return super().format(record)
35-
36-
37-
# Configure the logger
38-
logger = logging.getLogger(__name__)
39-
logger.setLevel(logging.INFO)
40-
41-
# Create console processor
42-
console_handler = logging.StreamHandler()
43-
console_handler.setLevel(logging.INFO)
44-
45-
# Create formatter
46-
formatter = ColoredFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
47-
console_handler.setFormatter(formatter)
48-
49-
# Add handler to logger
50-
logger.addHandler(console_handler)
12+
logger = get_logger(logging.getLogger(__name__))
5113

5214

5315
class NodeManager:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "py-node-manager"
7-
version = "0.1.0"
7+
version = "0.1.1"
88
description = "A tool library for conveniently using Node.js in Python"
99
readme = "README.md"
1010
requires-python = ">=3.8"

0 commit comments

Comments
 (0)