Skip to content

Commit d6fd9d4

Browse files
committed
Refactor logger initialization to support custom names
Added an optional `logger_name` parameter to the logger's constructor. This allows setting a custom logger name, defaulting to the class name if none is provided. Improves flexibility for log management in different contexts.
1 parent 746fa5a commit d6fd9d4

File tree

3 files changed

+10
-14
lines changed

3 files changed

+10
-14
lines changed

inverter

+5-3
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,14 @@ from inverter import Inverter
5353
from logger import LoggerMixin
5454
from tibber_api_handler import TibberAPIHandler
5555

56-
logger = LoggerMixin()
56+
logger = LoggerMixin("Bashscript")
5757
logger.write_newlines_to_log_file()
5858
logger.log.info(f"Inverter is manually controlled by the user {getpass.getuser()}: {sys.argv}")
5959

6060
if sys.argv[1] == "--status":
6161
try:
62-
inverter = Inverter(True)
62+
inverter = Inverter()
63+
inverter.log.name += " User"
6364
soc = inverter.get_state_of_charge(True)
6465
mode = inverter.get_operation_mode(True).name
6566
print(f"SoC: {soc}\nmode: {mode}")
@@ -70,7 +71,8 @@ if sys.argv[1] == "--status":
7071
if sys.argv[1] == "--mode":
7172
try:
7273
new_mode = OperationMode[sys.argv[2]]
73-
inverter = Inverter(True)
74+
inverter = Inverter()
75+
inverter.log.name += " User"
7476
last_mode = inverter.get_operation_mode(True).name
7577
inverter.set_operation_mode(new_mode)
7678
print(f"last mode: {last_mode}\nnew mode: {new_mode.name}")

source/inverter.py

+1-9
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,16 @@
66
from goodwe import inverter as GoodweInverter
77
from goodwe.et import OperationMode
88
from logger import LoggerMixin
9-
from sems_portal_api_handler import SemsPortalApiHandler
109

1110

1211
class Inverter(LoggerMixin):
13-
def __init__(self, controlled_by_bash_script: bool = False):
12+
def __init__(self):
1413
super().__init__()
1514

1615
self._device = None
1716
self.hostname = EnvironmentVariableGetter.get("INVERTER_HOSTNAME")
1817
self.battery_capacity = EnergyAmount(int(EnvironmentVariableGetter.get("INVERTER_BATTERY_CAPACITY")))
1918

20-
self.sems_portal_api_handler = SemsPortalApiHandler()
21-
22-
# Add a notice to the loggers name to make to easier to identify actions taken by a user manually
23-
if controlled_by_bash_script:
24-
self.log.name += " USER"
25-
self.sems_portal_api_handler.log.name += " USER"
26-
2719
@property
2820
def device(self) -> GoodweInverter:
2921
"""

source/logger.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,14 @@ class LoggerMixin:
3232
Notice that the loglevel trace with a weight of 5 was added.
3333
"""
3434

35-
def __init__(self):
35+
def __init__(self, logger_name: str = None):
3636
root_logger = logging.getLogger()
3737
if len(root_logger.handlers) == 0:
3838
self._set_logger(root_logger)
3939

40-
self.log = logging.getLogger(self.__class__.__name__)
40+
if not logger_name:
41+
logger_name = self.__class__.__name__
42+
self.log = logging.getLogger(logger_name)
4143

4244
def _set_logger(self, root_logger: logging.Logger) -> None:
4345
"""

0 commit comments

Comments
 (0)