1 # vim: ft=tcl foldmethod=marker foldmarker=<<<,>>> ts=4 shiftwidth=4
3 class tlc
::Sqlitelogger {
10 variable flush_secs
2.0
18 method safelog
{usec instancename ns class method argdesc lvl msg
}
24 body tlc
::Sqlitelogger::constructor {args
} { #<<<1
25 package require sqlite3
29 foreach reqf
{dbfile name
} {
30 if {![info exists
$reqf]} {
31 error "Required argument missing: -$reqf"
37 sqlite3
[namespace current
]::$db $dbfile
43 tlc
::Baselog::output_function [code
$this safelog
]
47 body tlc
::Sqlitelogger::destructor {} { #<<<1
49 if {[info exists db
]} {
60 body tlc
::Sqlitelogger::init_db {} { #<<<1
61 set exists
[$db onecolumn
{
74 id integer primary key autoincrement
,
80 id integer primary key autoincrement
,
93 set now
[tlc
::Baselog::timestamp]
106 body tlc
::Sqlitelogger::safelog {usec instancename ns class method argdesc lvl msg
} { #<<<1
129 if {$flush_id == ""} {
130 set flush_id
[after [expr {round
($flush_secs * 1000)}] \
136 body tlc
::Sqlitelogger::flush {} { #<<<1
137 after cancel
$flush_id; set flush_id
""
139 if {[info exists db
]} {
140 $db eval {commit
; begin
}