UsageΒΆ

To use pyzlog in a project:

import pyzlog

# initialize the zlogger
pyzlog.init_logs(
    path='/var/log',
    target='foo_app.log',
    level=logging.DEBUG,
    server_hostname='foo.app.io',
    fields={'custom_1': None, 'custom_2': None})

# then, log something
pyzlog.info(extra={'custom_1': 42, 'custom_2': 'foo'})

# log an error
try:
    raise_value_error()
except ValueError:
    pyzlog.error(extra={'custom_1': 'oh noes'})

To write tests for an application using pyzlog:

import os
import json
import app
import pyzlog
import unittest2


class TestApp(unittest2.TestCase, pyzlog.LogTest):

    def setUp(self):
        self.path = os.path.abspath('.')
        self.target = 'foo.log'
        self.remove_log()
        self.init_logs()

    def tearDown(self):
        self.remove_log()

    def test_log(self):
        app.something_that_logs()
        events = self.get_log_messages()
        self.assertEqual(1, len(events))
        expected_event = {
            'event_name': 'foo.event',
            # ...
        }
        self.assertEqual(expected_event, json.loads(events[0]))