33import re
44import threading
55import logging
6+ from logging .handlers import RotatingFileHandler
67import cmd
78import sys
89import socket
@@ -1188,6 +1189,7 @@ def complete_debug(self, text, line, begidx, endidx):
11881189def parse_args ():
11891190 parser = argparse .ArgumentParser (description = 'ACI Multisite Tool' )
11901191 parser .add_argument ('--config' , default = None , help = 'Configuration file' )
1192+ parser .add_argument ('--maxlogfiles' , type = int , default = 10 , help = 'Maximum number of log files (default is 10)' )
11911193 parser .add_argument ('--generateconfig' , action = 'store_true' , default = False ,
11921194 help = 'Generate an empty example configuration file' )
11931195 parser .add_argument ('--debug' , nargs = '?' ,
@@ -1197,6 +1199,7 @@ def parse_args():
11971199 args = parser .parse_args ()
11981200 return args
11991201
1202+
12001203def main ():
12011204 """
12021205 Main execution routine
@@ -1205,7 +1208,9 @@ def main():
12051208 """
12061209 execute_tool (parse_args ())
12071210
1211+
12081212def execute_tool (args , test_mode = False ):
1213+ # Set up the logging infrastructure
12091214 if args .debug is not None :
12101215 if args .debug == 'verbose' :
12111216 level = logging .DEBUG
@@ -1215,9 +1220,16 @@ def execute_tool(args, test_mode=False):
12151220 level = logging .CRITICAL
12161221 else :
12171222 level = logging .CRITICAL
1218- logging .basicConfig (format = '%(filename)s:%(message)s' )
1223+ log_formatter = logging .Formatter ('%(asctime)s %(levelname)s %(funcName)s(%(lineno)d) %(message)s' )
1224+ log_file = 'intersite.log'
1225+ my_handler = RotatingFileHandler (log_file , mode = 'a' , maxBytes = 5 * 1024 * 1024 ,
1226+ backupCount = args .maxlogfiles , encoding = None , delay = 0 )
1227+ my_handler .setFormatter (log_formatter )
1228+ my_handler .setLevel (level )
1229+ logging .getLogger ().addHandler (my_handler )
12191230 logging .getLogger ().setLevel (logging .DEBUG )
12201231
1232+ # Handle generating sample configuration
12211233 if args .generateconfig :
12221234 config = {'config' : [
12231235 {'site' : {'name' : '' ,
0 commit comments