Skip to content

Commit fd1eae7

Browse files
authored
Set swsscommon logging level (sonic-net#178)
There are many warning messages in swsscommon. Here I set the log_level higher to ERROR, so warnings will disappear in syslog. Fixed sonic-net#5992
1 parent 706d504 commit fd1eae7

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/sonic_ax_impl/__main__.py

+23
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from signal import signal, SIGUSR1
2+
import logging
23
import logging.handlers
34
import os
45
import shutil
56
import sys
67

78
import swsssdk.util
9+
from swsscommon import swsscommon
810

911
import ax_interface
1012
import sonic_ax_impl
@@ -43,6 +45,24 @@ def install_fragments():
4345
install_file(pass_script, '/usr/share/snmp', executable=True)
4446

4547

48+
# Mapping logging log level to SWSS log level
49+
# ref: https://docs.python.org/3/library/logging.html#logging-levels
50+
def logging_level_to_swss_level(log_level):
51+
if not isinstance(log_level, int):
52+
raise ValueError('log_level must be a int')
53+
if log_level >= logging.CRITICAL:
54+
log_level_swsscommon = swsscommon.Logger.SWSS_CRIT
55+
elif log_level >= logging.ERROR:
56+
log_level_swsscommon = swsscommon.Logger.SWSS_ERROR
57+
elif log_level >= logging.WARNING:
58+
log_level_swsscommon = swsscommon.Logger.SWSS_WARN
59+
elif log_level >= logging.INFO:
60+
log_level_swsscommon = swsscommon.Logger.SWSS_INFO
61+
else:
62+
log_level_swsscommon = swsscommon.Logger.SWSS_DEBUG
63+
return log_level_swsscommon
64+
65+
4666
if __name__ == "__main__":
4767

4868
if 'install' in sys.argv:
@@ -68,13 +88,16 @@ def install_fragments():
6888
sonic_ax_impl.logger.addHandler(logging_handler)
6989
log_level = logging.INFO
7090
log_level_sdk = logging.ERROR
91+
log_level_swsscommon = swsscommon.Logger.SWSS_ERROR
7192
else:
7293
sonic_ax_impl.logger.addHandler(logging.StreamHandler(sys.stdout))
94+
log_level_swsscommon = logging_level_to_swss_level(log_level)
7395

7496
# set the log levels
7597
sonic_ax_impl.logger.setLevel(log_level)
7698
ax_interface.logger.setLevel(log_level)
7799
swsssdk.logger.setLevel(log_level_sdk)
100+
swsscommon.Logger.getInstance().setMinPrio(log_level_swsscommon)
78101

79102
# inherit logging handlers in submodules
80103
ax_interface.logger.handlers = sonic_ax_impl.logger.handlers

0 commit comments

Comments
 (0)