|
From: <ni...@us...> - 2010-11-23 12:25:17
|
Revision: 159
http://openautomation.svn.sourceforge.net/openautomation/?rev=159&view=rev
Author: nilss1
Date: 2010-11-23 12:25:11 +0000 (Tue, 23 Nov 2010)
Log Message:
-----------
threadlock logger creation to prevent duplicate logger
Modified Paths:
--------------
PyWireGate/trunk/WireGate.py
Modified: PyWireGate/trunk/WireGate.py
===================================================================
--- PyWireGate/trunk/WireGate.py 2010-11-22 20:32:48 UTC (rev 158)
+++ PyWireGate/trunk/WireGate.py 2010-11-23 12:25:11 UTC (rev 159)
@@ -24,6 +24,7 @@
import daemon
import log
import re
+import threading
import ConfigParser
@@ -38,6 +39,8 @@
self.watchdoglist = {}
self.connectors = {}
self.LOGGER = {}
+ self.LoggerCreateLock = threading.RLock()
+
self.REDIRECTIO = REDIRECTIO
## Get the path of this script
@@ -222,16 +225,9 @@
## TODO: Check COnfig for seperate Logfiles and min level for logging
def createLog(self,instance):
- try:
- loglevel = self.config[instance]['loglevel']
- except:
- loglevel = False
+ loglevel = self.config[instance].get('loglevel',False)
+ filename = self.config[instance].get('logfile',False)
- try:
- filename = self.config[instance]['logfile']
- except:
- filename = False
-
return self.__createLog(instance,filename=filename,maxlevel=loglevel)
## Create the Loginstance
@@ -269,10 +265,14 @@
## Logger for all instances that check/create logger based on Configfile
def log(self,msg,severity="info",instance="WireGate"):
try:
- logger = self.LOGGER[instance]
- except KeyError:
- logger = self.LOGGER[instance] = self.createLog(instance)
- pass
+ self.LoggerCreateLock.acquire()
+ try:
+ logger = self.LOGGER[instance]
+ except KeyError:
+ logger = self.LOGGER[instance] = self.createLog(instance)
+ pass
+ finally:
+ self.LoggerCreateLock.release()
try:
if severity=="debug":
logger.debug(msg)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|