summaryrefslogtreecommitdiffstats
path: root/nova/log.py
diff options
context:
space:
mode:
authorSandy Walsh <sandy.walsh@rackspace.com>2011-02-17 17:39:03 -0400
committerSandy Walsh <sandy.walsh@rackspace.com>2011-02-17 17:39:03 -0400
commit782a5736b01f44af43f742de537bdbe4bbda6d88 (patch)
treebdd2fbb08a98b66d9140a9be71f3a8b23778345b /nova/log.py
parent5a988eb393c306097250a7f17ea65f0919fd9219 (diff)
parent52753aae3486f654b9fb19d6423fc26dc180644d (diff)
downloadnova-782a5736b01f44af43f742de537bdbe4bbda6d88.tar.gz
nova-782a5736b01f44af43f742de537bdbe4bbda6d88.tar.xz
nova-782a5736b01f44af43f742de537bdbe4bbda6d88.zip
changed from 003-004 migration
Diffstat (limited to 'nova/log.py')
-rw-r--r--nova/log.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/nova/log.py b/nova/log.py
index b541488bd..87a6dd51b 100644
--- a/nova/log.py
+++ b/nova/log.py
@@ -28,9 +28,11 @@ It also allows setting of formatting information through flags.
import cStringIO
+import inspect
import json
import logging
import logging.handlers
+import os
import sys
import traceback
@@ -92,7 +94,7 @@ critical = logging.critical
log = logging.log
# handlers
StreamHandler = logging.StreamHandler
-FileHandler = logging.FileHandler
+RotatingFileHandler = logging.handlers.RotatingFileHandler
# logging.SysLogHandler is nicer than logging.logging.handler.SysLogHandler.
SysLogHandler = logging.handlers.SysLogHandler
@@ -111,6 +113,18 @@ def _dictify_context(context):
return context
+def _get_binary_name():
+ return os.path.basename(inspect.stack()[-1][1])
+
+
+def get_log_file_path(binary=None):
+ if FLAGS.logfile:
+ return FLAGS.logfile
+ if FLAGS.logdir:
+ binary = binary or _get_binary_name()
+ return '%s.log' % (os.path.join(FLAGS.logdir, binary),)
+
+
def basicConfig():
logging.basicConfig()
for handler in logging.root.handlers:
@@ -123,8 +137,9 @@ def basicConfig():
syslog = SysLogHandler(address='/dev/log')
syslog.setFormatter(_formatter)
logging.root.addHandler(syslog)
- if FLAGS.logfile:
- logfile = FileHandler(FLAGS.logfile)
+ logpath = get_log_file_path()
+ if logpath:
+ logfile = RotatingFileHandler(logpath)
logfile.setFormatter(_formatter)
logging.root.addHandler(logfile)