def test_extend_java_class_01():
        from java.util.logging import Handler
        from java.util.logging import LogRecord
        from java.util.logging import Level

        lr = LogRecord(Level.ALL, "The first message")

        # extender object
        class MyHandler(Handler):
            "This is MyHandler doc"
            counter = 0

            def isLoggable(self, logrecord):
                self.counter = self.counter + 1
                return self.__super__.isLoggable(logrecord)

            def sayHello(self):
                return 'Hello'

        h = MyHandler()

        # accessing extender object via this property
        assert hasattr(h, 'this')
        assert hasattr(h.this, 'sayHello')
        assert hasattr(h.this, 'counter')
        assert hasattr(h.this, 'isLoggable')

        #accessing java methods or methods from extender object directly
        assert hasattr(h, 'close')
        assert hasattr(h, 'flush')
        assert hasattr(h, 'getEncoding')
        assert hasattr(h, 'setEncoding')

        assert h.this.counter == 0
        assert h.isLoggable(lr)
        assert h.this.counter == 1
        assert h.isLoggable(lr)
        assert h.isLoggable(lr)
        assert h.this.counter == 3

        assert 'Hello' == h.this.sayHello()

        h2 = MyHandler()
        assert h2.this.counter == 0
        assert h2.isLoggable(lr)
        assert h2.this.counter == 1
        assert h.this.counter == 3
Beispiel #2
0
    def __get_log_record(self, level, clazz, method, message, error, *args):
        record = JLogRecord(level, message)
        record.setLoggerName(self.name)
        record.setMillis(JSystem.currentTimeMillis())
        record.setParameters(_get_args_as_java_array(*args))
        if self.resource_bundle_name is not None:
            record.setResourceBundle(self.logger.getResourceBundle())
        if clazz is not None:
            record.setSourceClassName(clazz)
        if method is not None:
            record.setSourceMethodName(method)
        record.setThreadID(int(JThread.currentThread().getId()))
        if error is not None:
            if isinstance(error, Throwable):
                record.setThrown(error)
            else:
                ex = exception_helper.convert_error_to_exception()
                record.setThrown(ex)

        return record
Beispiel #3
0
def _log_category_message(jlogger, message, *args, **kwargs):
    method = kwargs.get('method_name', None)
    clazz = kwargs.get('class_name', None)
    record = JLogRecord(jlogger.getLevel(), message)
    record.setLoggerName(jlogger.getName())
    record.setMillis(JSystem.currentTimeMillis())
    record.setParameters(list(*args))
    record.setResourceBundle(jlogger.getResourceBundle())
    if clazz is not None:
        record.setSourceClassName(clazz)
    if method is not None:
        record.setSourceMethodName(method)
    record.setThreadID(int(JThread.currentThread().getId()))
    jlogger.log(record)
    return