File: logtofile.tcl

package info (click to toggle)
tcllib 1.20%2Bdfsg-1
  • links: PTS
  • area: main
  • in suites: bullseye
  • size: 68,064 kB
  • sloc: tcl: 216,842; ansic: 14,250; sh: 2,846; xml: 1,766; yacc: 1,145; pascal: 881; makefile: 107; perl: 84; f90: 84; python: 33; ruby: 13; php: 11
file content (35 lines) | stat: -rwxr-xr-x 844 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env tclsh
#
# Logging to a simple file
#
# This creates the file mylog.log and adds a single line.
#
# (c) 2005 Michael Schlenker <mic42@users.sourceforge.net>
#
# $Id: logtofile.tcl,v 1.2 2005/09/28 03:46:37 andreas_kupries Exp $
#
#

 package require logger

# Define a simple custom logproc
 proc log_to_file {lvl txt} {
   set logfile "mylog.log"
   set msg "\[[clock format [clock seconds]]\] $txt"
   set f [open $logfile {WRONLY CREAT APPEND}] ;# instead of "a"
   fconfigure $f -encoding utf-8
   puts $f $msg
   close $f
 }

# Initialize the logger
 set log [logger::init global]

# Install the logproc for all levels 
 foreach lvl [logger::levels] {
   interp alias {} log_to_file_$lvl {} log_to_file $lvl
   ${log}::logproc $lvl log_to_file_$lvl
 }

# Send a simple message to the logfile
 ${log}::info "Logging to a file"