A Remote Rotating Log for Python that works instantly
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))
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))
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))