Skip to content

Bridge between Python's logging API and Simple Logging Facade for Java (SLF4J)

License

Notifications You must be signed in to change notification settings

jythontools/logbridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logbridge

The Logbridge project bridges Python's logging library and the Simple Logging Facade for Java (SLF4J). The actual code is about 1 page of Python, so this is quite straightforward.

The rest of this README assumes the Jython command is aliased as jython27. For more details on setting Jython up from source, refer to the Jython developer guide.

Install Logbridge as usual into site-packages:

$ jython27 setup.py install

Tests will be formalized shortly. For now you can simply try this example:

$ (cd tests && CLASSPATH=./slf4j-api-1.7.7.jar:./slf4j-simple-1.7.7.jar jython27 test_logbridge.py)

SLF4J always requires two jars. So assuming we are running 1.7.7 of SLF4J, in the CLASSPATH - slf4j-api-1.7.7.jar for the API and a specific logger like slf4j-simple-1.7.7.jar, which in this case simply prints to stderr.

Configuring logging to use Logbridge is straightforward; we will follow the example code in the tutorial on how to configure logging in Python.

import logging
import logbridge


# create logger
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logbridge.SLF4JHandler()  # use SLF4J's root logger
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(message)s')

# add formatter to ch
ch.setFormatter(formatter)

# add ch to logger
logger.addHandler(ch)

# 'application' code
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')

Running the above script will result in the following output:

[MainThread] INFO ROOT - 2014-04-27 11:28:55,507 - simple_example - info message
[MainThread] WARN ROOT - 2014-04-27 11:28:55,509 - simple_example - warn message
[MainThread] ERROR ROOT - 2014-04-27 11:28:55,510 - simple_example - error message
[MainThread] ERROR ROOT - 2014-04-27 11:28:55,512 - simple_example - critical message

Note that besides using logbridge.SLF4JHandler, the format string is changed so that the level name (eg ERROR) is not repeated, since SLF4J will output this by default.

About

Bridge between Python's logging API and Simple Logging Facade for Java (SLF4J)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages