Ejemplo n.º 1
0
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self, parent)

        self.ui = Ui_LogBrowser()
        self.ui.setupUi(self)

        self.ui.comboBox.currentIndexChanged.connect(self.logChanged)

        self.model = LogInfo()
        self.model.setLogFile('/var/log/syslog')
        self.ui.textBrowser.append(''.join(self.model.readLastLines()))
        self.model.lineAdded.connect(self.addLogEntry)
Ejemplo n.º 2
0
class LogBrowser(QtGui.QWidget):

    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self, parent)

        self.ui = Ui_LogBrowser()
        self.ui.setupUi(self)

        self.ui.comboBox.currentIndexChanged.connect(self.logChanged)

        self.model = LogInfo()
        self.model.setLogFile('/var/log/syslog')
        self.ui.textBrowser.append(''.join(self.model.readLastLines()))
        self.model.lineAdded.connect(self.addLogEntry)

    def addLogEntry(self, line):
    	self.ui.textBrowser.append(line)

    def logChanged(self, index):
    	paths = [
    		'/var/log/syslog',
    		'/var/log/messages',
    		'/var/log/kern.log',
    		'/var/log/auth.log']
    	path = paths[index]

    	self.model.setLogFile(path)
    	self.ui.textBrowser.setPlainText(''.join(self.model.readLastLines()))
Ejemplo n.º 3
0
class LogMonitorServerProtocol(WampServerProtocol):
    """
   This is simple log browser server protocol.

   As with other server classes model is created, when new connection
   is established, and deleted when client closes websocket connection
   """

    uri = "http://system-monitor.com"

    def onSessionOpen(self):
        """
      When connection is established, we create our
      model instances and register them for RPC. that's it.
      """

        # set up process model
        self.logModel = LogInfo()
        self.logModel.signalNamespace(self, "logModel")
        self.logModel.setLogFile("/var/log/syslog")

        # expose model methods for RPC
        self.registerMethodForRpc(
            self.uri + "/logModel.readLastLines", self.logModel, lambda i: self.logModel.readLastLines()
        )

        # self.registerForRpc(self.uri+ '/logModel', self)
        self.registerMethodForRpc(
            self.uri + "/logModel.changeLogFile", self, lambda i, logNum: self.changeLogFile(logNum)
        )

    @exportRpc
    def changeLogFile(self, logNum):
        paths = ["/var/log/syslog", "/var/log/messages", "/var/log/kern.log", "/var/log/auth.log"]
        log = paths[int(logNum)]
        self.logModel.setLogFile(log)

    def connectionLost(self, reason):
        """
      When connection is gone (i.e. client close window, navigated
      away from the page), stop the model timer, which holds last
      reference to model, and delete the model
      """
        WampServerProtocol.connectionLost(self, reason)

        # self.logModel.timer.stop()
        self.logModel = None
Ejemplo n.º 4
0
    def onSessionOpen(self):
        """
      When connection is established, we create our
      model instances and register them for RPC. that's it.
      """

        # set up process model
        self.logModel = LogInfo()
        self.logModel.signalNamespace(self, "logModel")
        self.logModel.setLogFile("/var/log/syslog")

        # expose model methods for RPC
        self.registerMethodForRpc(
            self.uri + "/logModel.readLastLines", self.logModel, lambda i: self.logModel.readLastLines()
        )

        # self.registerForRpc(self.uri+ '/logModel', self)
        self.registerMethodForRpc(
            self.uri + "/logModel.changeLogFile", self, lambda i, logNum: self.changeLogFile(logNum)
        )