aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Erdmann <dywi@mailerd.de>2012-07-10 09:13:50 +0200
committerAndré Erdmann <dywi@mailerd.de>2012-07-10 09:13:50 +0200
commitaa475e12bacede830593094ed5553e6e433768c7 (patch)
tree9c03c6a2c3e85e7c1bc3b0c2aae3ebfd6f3c2113 /roverlay
parenttypo (diff)
downloadR_overlay-aa475e12bacede830593094ed5553e6e433768c7.tar.gz
R_overlay-aa475e12bacede830593094ed5553e6e433768c7.tar.bz2
R_overlay-aa475e12bacede830593094ed5553e6e433768c7.zip
create log dirs if necessary
modified: roverlay/depres/listeners.py modified: roverlay/recipe/easylogger.py
Diffstat (limited to 'roverlay')
-rw-r--r--roverlay/depres/listeners.py10
-rw-r--r--roverlay/recipe/easylogger.py6
2 files changed, 14 insertions, 2 deletions
diff --git a/roverlay/depres/listeners.py b/roverlay/depres/listeners.py
index 0815036..9d5b0fc 100644
--- a/roverlay/depres/listeners.py
+++ b/roverlay/depres/listeners.py
@@ -3,6 +3,7 @@
# Distributed under the terms of the GNU General Public License v2
import threading
+import os
from roverlay.depres import events
from roverlay.depres.depenv import DepEnv
@@ -32,7 +33,11 @@ class FileListener ( DependencyResolverListener ):
def _event ( self, event_type, to_write ):
"""Writes to_write if event_type is accepted by self.listen_mask."""
if self.mask & event_type:
- if not self.fh: self.fh = open ( self._file, 'a' ) # or w?
+ if not self.fh:
+ fdir = os.path.dirname ( self._file )
+ if not os.path.isdir ( fdir ):
+ os.makedirs ( fdir )
+ self.fh = open ( self._file, 'a' )
self.fh.write ( to_write + "\n" )
# when to close? with open (...) as fh:...?
# --- end of _event (...) ---
@@ -63,6 +68,9 @@ class SetFileListener ( DependencyResolverListener ):
def write ( self, sort_entries=True ):
try:
+ fdir = os.path.dirname ( self._file )
+ if not os.path.isdir ( fdir ):
+ os.makedirs ( fdir )
fh = open ( self._file, 'w' )
if sort_entries:
diff --git a/roverlay/recipe/easylogger.py b/roverlay/recipe/easylogger.py
index 411397d..f1a497a 100644
--- a/roverlay/recipe/easylogger.py
+++ b/roverlay/recipe/easylogger.py
@@ -5,7 +5,7 @@
import sys
import logging
import logging.handlers
-import os.path
+import os
_STATUS = 0
@@ -97,6 +97,10 @@ def setup_file ( conf ):
# FIXME explain this in config (and make it available)
rotating = conf.get ( 'LOG.FILE.rotate', False )
+ logdir = os.path.dirname ( logfile )
+ if not os.path.isdir ( logdir ):
+ os.makedirs ( logdir )
+
if rotating:
# using per-run log files