Table Of Contents

Previous topic

Manual for rrlog

Next topic

Examples for rrlog

This Page

Examples for rrlog

A Remote Rotating Log for Python that works instantly

Simply locally

Into stdout

Log into standard out:

from rrlog.server import printwriter

log = printwriter.createLocalLog()

# now, log some lines:
for i in xrange(25):
	log("Dear log reader, this is line #%s"%(i))

rrlog.server.printwriter

Into files

Log rotating into 3 files, each with 10 lines max. (existing files in the working directory are overwritten)

from rrlog.server import filewriter

log = filewriter.createLocalLog(
		filePathPattern="./demo-log-%s.txt", # "pattern" because %s (or %d) is required for the rotate-number
		rotateCount=3, # rotate over 3 files
		rotateLineMin=10, #at least 10 lines in each file before rotating
		)

# now, log some lines:
for i in xrange(25):
	log("This is log line #%s"%(i))

rrlog.server.filewriter

Into database tables

Log rotating into 3 tables, each with 10 lines max. (existing tables are overwritten)

from rrlog.server import dbwriter_sa

# This is a RFC-1738 style URL, as required by SQLAlchemy.
# It includes in this order:
# the database type (e.g.mysql,postgres,sqlite...)
# the database user (that has write permission)
# the database name (here: "logtest")
# See SQLAlchemy Doc for a more accurate and up-to-date description.
engineStr = "mysql://logtester@localhost/logtest"

log = dbwriter_sa.createLocalLog(
	engineStr = engineStr,
	tableNamePattern = "logtable_%s",  # "pattern" because %s (or %d) is required for the rotate-number
	rotateCount = 3, # rotate over 3 tables
	rotateLineMin = 10, # at least 10 lines in each table before rotating
	)

# log 31 lines rotating -> first table has exactly one message (the last)  
for i in xrange(31):
	log("usingDatabase: this is line #%s"%(i))

rrlog.server.printwriter

rrlog.server.dbwriter_sa