# loggers
[loggers]  
keys=root,main,Group0,Group1,Group2,Group3,Group4,Group5,Group6,Group7,Group8,Group9,Group10,Group11,Group12

[handlers]  
keys=console,main,timedFH0,timedFH1,timedFH2,timedFH2,timedFH3,timedFH4,timedFH5,timedFH6,timedFH7,timedFH8,timedFH9,timedFH10,timedFH11,timedFH12
  
[formatters]  
keys=basefmt

[logger_root]  
level=INFO
handlers=console

[logger_main]
handlers=main
propagate=0
qualname=main

[logger_Group0]
handlers=timedFH0
propagate=0
qualname=Group0

[logger_Group1]
handlers=timedFH1
propagate=0
qualname=Group1

[logger_Group2]
handlers=timedFH2
propagate=0
qualname=Group2

[logger_Group3]
handlers=timedFH3
propagate=0
qualname=Group3

[logger_Group4]
handlers=timedFH4
propagate=0
qualname=Group4

[logger_Group5]
handlers=timedFH5
propagate=0
qualname=Group5

[logger_Group6]
handlers=timedFH6
propagate=0
qualname=Group6

[logger_Group7]
handlers=timedFH7
propagate=0
qualname=Group7

[logger_Group8]
handlers=timedFH8
propagate=0
qualname=Group8

[logger_Group9]
handlers=timedFH9
propagate=0
qualname=Group9

[logger_Group10]
handlers=timedFH10
propagate=0
qualname=Group10

[logger_Group11]
handlers=timedFH11
propagate=0
qualname=Group11

[logger_Group12]
handlers=timedFH12
propagate=0
qualname=Group12

[handler_console]
class=StreamHandler
formatter=basefmt
args=(sys.stdout,)

[handler_main]
class=logging.handlers.RotatingFileHandler
formatter=basefmt  
args=("./log/main.log", "ab+", 1*1024*1024, 3)

[handler_timedFH0]
class=logging.handlers.TimedRotatingFileHandler
formatter=basefmt  
args=("./log/Group0.log", "H", 1, 10)

[handler_timedFH1]
class=logging.handlers.TimedRotatingFileHandler
formatter=basefmt  
args=("./log/Group1.log", "H", 1, 10)

[handler_timedFH2]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group2.log", "H", 1, 10)

[handler_timedFH3]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group3.log", "H", 1, 10)

[handler_timedFH4]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group4.log", "H", 1, 10)

[handler_timedFH5]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group5.log", "H", 1, 10)

[handler_timedFH6]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group6.log", "H", 1, 10)

[handler_timedFH7]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group7.log", "H", 1, 10)

[handler_timedFH8]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group8.log", "H", 1, 10)

[handler_timedFH9]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group9.log", "H", 1, 10)

[handler_timedFH10]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group10.log", "H", 1, 10)

[handler_timedFH11]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group11.log", "H", 1, 10)

[handler_timedFH12]  
class=logging.handlers.TimedRotatingFileHandler  
formatter=basefmt  
args=("./log/Group12.log", "H", 1, 10)

[formatter_basefmt]  
format=%(asctime)s.%(msecs)03d:%(filename)-12s[%(lineno)4d] %(levelname)-6s %(message)s
datefmt=%H:%M:%S
class=logging.Formatter