|
From: <ni...@us...> - 2010-11-04 20:51:52
|
Revision: 75
http://openautomation.svn.sourceforge.net/openautomation/?rev=75&view=rev
Author: nilss1
Date: 2010-11-04 20:51:46 +0000 (Thu, 04 Nov 2010)
Log Message:
-----------
Changed logging to UTF-8 and console logging to default encoding of stderr
Modified Paths:
--------------
PyWireGate/trunk/WireGate.py
Modified: PyWireGate/trunk/WireGate.py
===================================================================
--- PyWireGate/trunk/WireGate.py 2010-11-04 20:06:44 UTC (rev 74)
+++ PyWireGate/trunk/WireGate.py 2010-11-04 20:51:46 UTC (rev 75)
@@ -236,17 +236,19 @@
logger.setLevel(level)
if filename:
## python handle logrotating
- handler = logging.handlers.TimedRotatingFileHandler(filename,'midnight',backupCount=7)
+ handler = logging.handlers.TimedRotatingFileHandler(filename,'MIDNIGHT',encoding='utf-8',backupCount=7)
## Handler if logrotate handles Logfiles
#handler = logging.handlers.WatchedFileHandle(filename)
handler.setFormatter(formatter)
+ handler.setLevel(level)
logger.addHandler(handler)
# create console handler and set level to debug
if self.REDIRECTIO:
- console = logging.StreamHandler()
+ #console = logging.StreamHandler()
+ console = isoStreamHandler()
console.setFormatter(formatter)
logger.addHandler(console)
return logger
@@ -285,7 +287,13 @@
os.umask(0)
+class isoStreamHandler(logging.StreamHandler):
+ def emit(self,record):
+ #record.message = record.message.decode('utf-8').encode('iso-8859-15')
+ record.message = record.message.encode(sys.stderr.encoding)
+ logging.StreamHandler.emit(self,record)
+
if __name__ == "__main__":
try:
import os
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ni...@us...> - 2010-11-14 09:55:04
|
Revision: 119
http://openautomation.svn.sourceforge.net/openautomation/?rev=119&view=rev
Author: nilss1
Date: 2010-11-14 09:54:53 +0000 (Sun, 14 Nov 2010)
Log Message:
-----------
add defaultencoding option
Modified Paths:
--------------
PyWireGate/trunk/WireGate.py
Modified: PyWireGate/trunk/WireGate.py
===================================================================
--- PyWireGate/trunk/WireGate.py 2010-11-14 09:53:57 UTC (rev 118)
+++ PyWireGate/trunk/WireGate.py 2010-11-14 09:54:53 UTC (rev 119)
@@ -62,7 +62,8 @@
'datastore' : "%s/datastore.db" % self.scriptpath,
'logfile' : "%s/wiregated.log" % self.scriptpath,
'errorlog' : "%s/wiregated-error.log" % self.scriptpath,
- 'loglevel': 'info'
+ 'loglevel': 'info',
+ 'defaultencoding': 'UTF-8'
}
self.checkconfig("WireGate",defaultconfig)
@@ -117,7 +118,6 @@
def run(self):
- import time
for configpart in self.config.keys():
if "connector" in self.config[configpart]:
name = configpart
@@ -249,7 +249,7 @@
logger.setLevel(level)
if filename:
## python handle logrotating
- handler = log.logging.handlers.TimedRotatingFileHandler(filename,'MIDNIGHT',encoding='utf-8',backupCount=7)
+ handler = log.logging.handlers.TimedRotatingFileHandler(filename,'MIDNIGHT',encoding=self.WG.config['WireGate']['defaultencoding'],backupCount=7)
## Handler if logrotate handles Logfiles
#handler = logging.handlers.WatchedFileHandle(filename)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
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.
|
|
From: <ma...@us...> - 2011-05-07 09:29:11
|
Revision: 321
http://openautomation.svn.sourceforge.net/openautomation/?rev=321&view=rev
Author: mayerch
Date: 2011-05-07 09:29:04 +0000 (Sat, 07 May 2011)
Log Message:
-----------
Fix KeyError exception when intance has no config, e.g. currently common for the scheduler
Modified Paths:
--------------
PyWireGate/trunk/WireGate.py
Modified: PyWireGate/trunk/WireGate.py
===================================================================
--- PyWireGate/trunk/WireGate.py 2011-05-06 21:12:20 UTC (rev 320)
+++ PyWireGate/trunk/WireGate.py 2011-05-07 09:29:04 UTC (rev 321)
@@ -229,8 +229,12 @@
## TODO: Check COnfig for seperate Logfiles and min level for logging
def createLog(self,instance):
- loglevel = self.config[instance].get('loglevel',False)
- filename = self.config[instance].get('logfile',False)
+ if instance in self.config:
+ loglevel = self.config[instance].get('loglevel',False)
+ filename = self.config[instance].get('logfile',False)
+ else:
+ loglevel = self.config['WireGate'].get('loglevel',False)
+ filename = self.config['WireGate'].get('logfile',False)
return self.__createLog(instance,filename=filename,maxlevel=loglevel)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|