Merge "Allow log disable in account/container server"

This commit is contained in:
Jenkins 2014-02-18 11:02:07 +00:00 committed by Gerrit Code Review
commit e60d541d9a
4 changed files with 67 additions and 26 deletions

View File

@ -48,6 +48,7 @@ class AccountController(object):
def __init__(self, conf, logger=None): def __init__(self, conf, logger=None):
self.logger = logger or get_logger(conf, log_route='account-server') self.logger = logger or get_logger(conf, log_route='account-server')
self.log_requests = config_true_value(conf.get('log_requests', 'true'))
self.root = conf.get('devices', '/srv/node') self.root = conf.get('devices', '/srv/node')
self.mount_check = config_true_value(conf.get('mount_check', 'true')) self.mount_check = config_true_value(conf.get('mount_check', 'true'))
replication_server = conf.get('replication_server', None) replication_server = conf.get('replication_server', None)
@ -296,19 +297,20 @@ class AccountController(object):
if res.headers.get('x-container-timestamp') is not None: if res.headers.get('x-container-timestamp') is not None:
additional_info += 'x-container-timestamp: %s' % \ additional_info += 'x-container-timestamp: %s' % \
res.headers['x-container-timestamp'] res.headers['x-container-timestamp']
log_message = '%s - - [%s] "%s %s" %s %s "%s" "%s" "%s" %s "%s"' % ( if self.log_requests:
req.remote_addr, log_msg = '%s - - [%s] "%s %s" %s %s "%s" "%s" "%s" %s "%s"' % (
time.strftime('%d/%b/%Y:%H:%M:%S +0000', time.gmtime()), req.remote_addr,
req.method, req.path, time.strftime('%d/%b/%Y:%H:%M:%S +0000', time.gmtime()),
res.status.split()[0], res.content_length or '-', req.method, req.path,
req.headers.get('x-trans-id', '-'), res.status.split()[0], res.content_length or '-',
req.referer or '-', req.user_agent or '-', req.headers.get('x-trans-id', '-'),
trans_time, req.referer or '-', req.user_agent or '-',
additional_info) trans_time,
if req.method.upper() == 'REPLICATE': additional_info)
self.logger.debug(log_message) if req.method.upper() == 'REPLICATE':
else: self.logger.debug(log_msg)
self.logger.info(log_message) else:
self.logger.info(log_msg)
return res(env, start_response) return res(env, start_response)

View File

@ -55,6 +55,7 @@ class ContainerController(object):
def __init__(self, conf, logger=None): def __init__(self, conf, logger=None):
self.logger = logger or get_logger(conf, log_route='container-server') self.logger = logger or get_logger(conf, log_route='container-server')
self.log_requests = config_true_value(conf.get('log_requests', 'true'))
self.root = conf.get('devices', '/srv/node') self.root = conf.get('devices', '/srv/node')
self.mount_check = config_true_value(conf.get('mount_check', 'true')) self.mount_check = config_true_value(conf.get('mount_check', 'true'))
self.node_timeout = int(conf.get('node_timeout', 3)) self.node_timeout = int(conf.get('node_timeout', 3))
@ -501,19 +502,20 @@ class ContainerController(object):
{'method': req.method, 'path': req.path}) {'method': req.method, 'path': req.path})
res = HTTPInternalServerError(body=traceback.format_exc()) res = HTTPInternalServerError(body=traceback.format_exc())
trans_time = '%.4f' % (time.time() - start_time) trans_time = '%.4f' % (time.time() - start_time)
log_message = '%s - - [%s] "%s %s" %s %s "%s" "%s" "%s" %s' % ( if self.log_requests:
req.remote_addr, log_message = '%s - - [%s] "%s %s" %s %s "%s" "%s" "%s" %s' % (
time.strftime('%d/%b/%Y:%H:%M:%S +0000', req.remote_addr,
time.gmtime()), time.strftime('%d/%b/%Y:%H:%M:%S +0000',
req.method, req.path, time.gmtime()),
res.status.split()[0], res.content_length or '-', req.method, req.path,
req.headers.get('x-trans-id', '-'), res.status.split()[0], res.content_length or '-',
req.referer or '-', req.user_agent or '-', req.headers.get('x-trans-id', '-'),
trans_time) req.referer or '-', req.user_agent or '-',
if req.method.upper() == 'REPLICATE': trans_time)
self.logger.debug(log_message) if req.method.upper() == 'REPLICATE':
else: self.logger.debug(log_message)
self.logger.info(log_message) else:
self.logger.info(log_message)
return res(env, start_response) return res(env, start_response)

View File

@ -20,6 +20,7 @@ import unittest
from tempfile import mkdtemp from tempfile import mkdtemp
from shutil import rmtree from shutil import rmtree
from StringIO import StringIO from StringIO import StringIO
from test.unit import FakeLogger
import simplejson import simplejson
import xml.dom.minidom import xml.dom.minidom
@ -1634,5 +1635,23 @@ class TestAccountController(unittest.TestCase):
response = self.controller.__call__(env, start_response) response = self.controller.__call__(env, start_response)
self.assertEqual(response, answer) self.assertEqual(response, answer)
def test_GET_log_requests_true(self):
self.controller.logger = FakeLogger()
self.controller.log_requests = True
req = Request.blank('/sda1/p/a', environ={'REQUEST_METHOD': 'GET'})
resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 404)
self.assertTrue(self.controller.logger.log_dict['info'])
def test_GET_log_requests_false(self):
self.controller.logger = FakeLogger()
self.controller.log_requests = False
req = Request.blank('/sda1/p/a', environ={'REQUEST_METHOD': 'GET'})
resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 404)
self.assertFalse(self.controller.logger.log_dict['info'])
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()

View File

@ -21,6 +21,7 @@ from contextlib import contextmanager
from shutil import rmtree from shutil import rmtree
from StringIO import StringIO from StringIO import StringIO
from tempfile import mkdtemp from tempfile import mkdtemp
from test.unit import FakeLogger
from xml.dom import minidom from xml.dom import minidom
from eventlet import spawn, Timeout, listen from eventlet import spawn, Timeout, listen
@ -1851,6 +1852,23 @@ class TestContainerController(unittest.TestCase):
response = self.controller.__call__(env, start_response) response = self.controller.__call__(env, start_response)
self.assertEqual(response, answer) self.assertEqual(response, answer)
def test_GET_log_requests_true(self):
self.controller.logger = FakeLogger()
self.controller.log_requests = True
req = Request.blank('/sda1/p/a/c', environ={'REQUEST_METHOD': 'GET'})
resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 404)
self.assertTrue(self.controller.logger.log_dict['info'])
def test_GET_log_requests_false(self):
self.controller.logger = FakeLogger()
self.controller.log_requests = False
req = Request.blank('/sda1/p/a/c', environ={'REQUEST_METHOD': 'GET'})
resp = req.get_response(self.controller)
self.assertEqual(resp.status_int, 404)
self.assertFalse(self.controller.logger.log_dict['info'])
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()