Skip to content

Commit 37ae236

Browse files
committed
allow to print out the trace messages directly on the command line
per default, only the messages from server start/server stop process are printed out directly on the command line. All other traces are redirected to a specified log file. With this changes, if no log file name is specified all traces will be printed out on the CLI.
1 parent d9cd695 commit 37ae236

File tree

5 files changed

+35
-11
lines changed

5 files changed

+35
-11
lines changed

source/bridgeLogger.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,7 @@ def configureLogging(logPath, logfile, loglevel=logging.INFO):
5252
except (ValueError, TypeError):
5353
loglevel = logging.INFO
5454

55-
# create the logfile path if needed
56-
if not os.path.exists(logPath):
57-
os.makedirs(logPath)
58-
logfile = os.path.join(logPath, logfile)
55+
logToFile = True if logfile else False
5956

6057
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)-8s - %(message)s')
6158
formatter1 = logging.Formatter('%(asctime)s - %(levelname)-8s - %(message)s', datefmt='%Y-%m-%d %H:%M')
@@ -65,15 +62,25 @@ def configureLogging(logPath, logfile, loglevel=logging.INFO):
6562
logger = logging.getLogger(__name__)
6663
logger.setLevel(logging.TRACE)
6764

65+
# prepare stream handler
6866
strmhandler = logging.StreamHandler()
69-
strmhandler.setLevel(logging.INFO)
67+
strmhandler.setLevel(loglevel)
7068
strmhandler.setFormatter(formatter1)
7169

72-
rfhandler = logging.handlers.RotatingFileHandler(logfile, 'a', 1000000, 5) # 5 x 1M files
73-
rfhandler.setLevel(loglevel)
74-
rfhandler.setFormatter(formatter)
70+
if logToFile:
71+
# create the log file path if needed
72+
if not os.path.exists(logPath):
73+
os.makedirs(logPath)
74+
logfile = os.path.join(logPath, logfile)
75+
76+
rfhandler = logging.handlers.RotatingFileHandler(logfile, 'a', 1000000, 5) # 5 x 1M files
77+
rfhandler.setLevel(loglevel)
78+
rfhandler.setFormatter(formatter)
79+
80+
strmhandler.setLevel(logging.INFO) # if we log to a file limit the console traces to INFO level
81+
82+
logger.addHandler(rfhandler)
7583

76-
logger.addHandler(rfhandler)
7784
logger.addHandler(strmhandler)
7885

7986
logger.propagate = False # prevent propagation to default (console) logger

source/confParser.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,8 @@ def parse_cmd_args(argv):
177177
parser.add_argument('-P', '--serverPort', action="store", type=int, choices=[9980, 9981], default=None,
178178
help='ZIMon collector port number (Default from config.ini: 9980)')
179179
parser.add_argument('-l', '--logPath', action="store", default=None, help='location path of the log file (Default from config.ini: \'/var/log/ibm_bridge_for_grafana\')')
180-
parser.add_argument('-f', '--logFile', action="store", default=None, help='Name of the log file (Default from config.ini: zserver.log')
180+
parser.add_argument('-f', '--logFile', action="store", default=None, help='Name of the log file (Default from config.ini: zserver.log). If no log file name specified \
181+
all traces will be printed out directly on the command line')
181182
parser.add_argument('-c', '--logLevel', action="store", type=int, default=None,
182183
help='log level. Available levels: 10 (DEBUG), 15 (MOREINFO), 20 (INFO), 30 (WARN), 40 (ERROR) (Default from config.ini: 15)')
183184
parser.add_argument('-p', '--port', action="store", type=int, choices=[4242, 8443], default=None, help='port number listening on for HTTP(S) connections (Default from config.ini: 4242)')

source/config.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,5 @@ logPath = /var/log/ibm_bridge_for_grafana
4545
logLevel = 15
4646

4747
# Log file name (Default: zserver.log)
48+
# Comment out this setting, if you wish to print out the trace messages directly on the command line
4849
logFile = zserver.log

source/zimonGrafanaIntf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -588,7 +588,7 @@ def main(argv):
588588
return
589589

590590
# prepare the logger
591-
logger = configureLogging(args.get('logPath'), args.get('logFile'), args.get('logLevel'))
591+
logger = configureLogging(args.get('logPath'), args.get('logFile', None), args.get('logLevel'))
592592

593593
# prepare cherrypy server configuration
594594
updateCherrypyConf(args)

tests/test_logger.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,20 @@ def test_case02():
1414

1515

1616
def test_case03():
17+
with assert_raises(TypeError):
18+
configureLogging(None, 'myLog')
19+
20+
21+
def test_case04():
1722
result = configureLogging('/tmp', 'mylog', 'abc')
1823
assert isinstance(result, logging.Logger)
24+
25+
26+
def test_case05():
27+
result = configureLogging('/tmp', None, 'abc')
28+
assert isinstance(result, logging.Logger)
29+
30+
31+
def test_case06():
32+
result = configureLogging('/tmp', None)
33+
assert isinstance(result, logging.Logger)

0 commit comments

Comments
 (0)