======
pglogs
======
Save logs records in postgres.
Log record can contain any num of fields.
Logs format in the table:
    id  SERIAL
    data TEXT
        {"field1": "value", "field2": "value", "field3": "value"}


# example of use
    from pglogs.models import Pg, LogRecord

    pg = Pg('pglogs', 'pglogs_user', '127.0.0.1', 'qwerty')
    pg.connect()

    log = LogRecord(pg)
    log.set_field('chef_request', """'{}[[[]dfdfd''']]--pdfdfdfdfd\\SOME HACKER BEEN HERE}'""")
    log.set_field('proxy_response', """dfdg'gfgfd'g'dsgd\'gfsdfg\'gdf/dgfd/fdg/f/dgd'\"\\''''""")
    log.commit()


# example of use for log Flask requests
    from pglogs.models import Pg, LogRecord
    from pglogs.utils import pack_request_log
    from flask import Flask, request, g

    app = Flask(__name__)
    pg = Pg('pglogs', 'pglogs_user', '127.0.0.1', 'qwerty')


    @app.before_request
    def init_request_log():
        if not hasattr(g, 'log'):
            g.log = LogRecord(pg)

    @app.route("/")
    def hello():
        g.log.set_field('hello_request',pack_request_log(request))
        g.log.commit()
        return "Hello World!"

    if __name__ == "__main__":
        app.run()



