]> git.proxmox.com Git - mirror_ovs.git/blame - ovsdb/ovsdbmonitor/OVELogger.py
ofproto: Add more thread safety annotations.
[mirror_ovs.git] / ovsdb / ovsdbmonitor / OVELogger.py
CommitLineData
436f27dd
AS
1# Copyright (c) 2010 Citrix Systems, Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at:
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15from OVEStandard import *
16
17class OVELogger(QtCore.QObject):
18 instance = None
19 def __init__(self):
20 QtCore.QObject.__init__(self)
21 self.contents = []
22 self.loggers = []
23
24 @classmethod
25 def Inst(cls):
26 if cls.instance is None:
27 cls.instance = OVELogger()
28 return cls.instance
29
30 def reset(self):
31 self.contents = []
32 self.update()
33
34 def logString(self, message):
35 self.contents += [str(message)]
36 if len(self.contents) > 500:
37 self.contents = ['+++ Log truncated', ''] + self.contents[50:]
38 self.update()
39
40 def update(self):
41 self.emit(QtCore.SIGNAL("logUpdated()"))
42
43def OVELog(message):
44 OVELogger.Inst().logString(message)
45