python flask 解析配置檔案與寫日誌
阿新 • • 發佈:2018-11-01
test.conf
[kafka]
kafka_sys_topic = test-sys-info
kafka_sys_group = test-consumer-group
zookeeper_server = 192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181
[mysqldb]
mysql_host = 192.168.1.10
mysql_port = 3306
mysql_dbname = testdb
mysql_user = testuser
mysql_passwd = testpassword
[log]
conf = /logging.conf
config_parser.py
import sys
import os
import ConfigParser
CUR_PATH = os.path.abspath(__file__) #當前檔案的絕對路徑
CUR_DIR = os.path.dirname(CUR_PATH) #當前檔案所在的目錄
CUR_PARE = os.path.dirname(CUR_DIR) #當前檔案所在的目錄的父目錄
CONFIG_PATH = CUR_PARE + "/test.conf"
config = ConfigParser.ConfigParser()
class Config(object):
def __init__(self):
config.read(CONFIG_PATH)
try:
#kafka section config
self.kafka_sys_topic = config.get('kafka', 'kafka_sys_topic')
self.kafka_sys_group = config.get('kafka', 'kafka_sys_group')
self.zookeeper_server = config.get('kafka', 'zookeeper_server')
# mysql database section config
self.mysql_host = config.get('mysqldb', 'mysql_host')
self.mysql_port = config.get('mysqldb', 'mysql_port')
self.mysql_dbname = config.get('mysqldb', 'mysql_dbname')
self.mysql_user = config.get('mysqldb', 'mysql_user')
self.mysql_passwd = config.get('mysqldb', 'mysql_passwd')
# log section config, the following code can not move forward
self.logging_conf = CUR_PARE + config.get('log', 'conf')
config.read(self.logging_conf)
self.agent_log_fname = eval(config.get('handler_agentHandler', 'args').replace(')(', '),('))[0]
self.client_log_fname = eval(config.get('handler_serverHandler', 'args').replace(')(', '),('))[0]
except Exception as ex:
print(ex)
sys.exit(2)
logging.conf
[loggers]
keys = root,agent,server,test,access,apsjob,apscheduler.executors.default
[handlers]
keys = consoleHandler,agentHandler,serverHandler,testHandler, accessHandler, apsjobHandler, apsexcutorHandler
[formatters]
keys = simpleFormatter,threadsFormater
[formatter_simpleFormatter]
format = %(asctime)s - %(name)s - %(module)s - [%(filename)s(%(lineno)d)] - %(levelname)s : %(message)s
[formatter_threadsFormater]
format = %(asctime)s - %(name)s - %(module)s - [%(process)d - %(threadName)s : %(thread)d - %(filename)s(%(lineno)d)] - %(levelname)s : %(message)s
[logger_root]
level = DEBUG
handlers = consoleHandler
[logger_agent]
level = DEBUG
handlers = agentHandler
qualname = agent
propagate = 0
[logger_server]
level = DEBUG
handlers = serverHandler
qualname = server
propagate = 0
[logger_test]
level = DEBUG
handlers = testHandler
qualname = test
propagate = 0
[logger_access]
level = DEBUG
handlers = accessHandler
qualname = access
propagate = 0
[logger_apsjob]
level = DEBUG
handlers = apsjobHandler
qualname = apsjob
propagate = 0
[logger_apscheduler.executors.default]
level = DEBUG
handlers = apsexcutorHandler
qualname = apscheduler.executors.default
propagate = 0
[handler_consoleHandler]
class = StreamHandler
level = DEBUG
formatter = simpleFormatter
args = (sys.stdout,)
[handler_agentHandler]
class = handlers.TimedRotatingFileHandler
level = DEBUG
formatter = threadsFormater
args = ('/var/log/test/agent.log', 'D', 1, 7, 'utf8')
#args=('test.log'),'a',10000,10)
[handler_serverHandler]
class = handlers.TimedRotatingFileHandler
level = DEBUG
formatter = simpleFormatter
args = ('/var/log/test/server.log', 'D', 1, 7, 'utf8')
[handler_testHandler]
class = handlers.TimedRotatingFileHandler
level = DEBUG
formatter = simpleFormatter
args = ('/var/log/test/test.log', 'D', 1, 7, 'utf8')
[handler_accessHandler]
class = handlers.TimedRotatingFileHandler
level = DEBUG
formatter = simpleFormatter
args=('/var/log/test/access.log', 'D', 1, 7, 'utf8')
[handler_apsjobHandler]
class = handlers.TimedRotatingFileHandler
level = DEBUG
formatter = simpleFormatter
args=('/var/log/test/apsjob.log', 'D', 1, 7, 'utf8')
[handler_apsexcutorHandler]
class = handlers.TimedRotatingFileHandler
level = DEBUG
formatter = simpleFormatter
args=('/var/log/test/apsexcutor.log', 'D', 1, 7, 'utf8')