# tcl-syslog

Simple Tcl interface to the Unix syslog facility

    package require syslog

    syslog -facility my_application info "...an informational message to be sent to syslog"


This package was originally written in 2008 Alexandros Stergiakis and adopted in 2024 by
Massimo Manghi since the author is unresponsive at the email declared in the documentation.

See COPYING for a legal notice recognizing the original authorship

```
# tcl-syslog(n) - Syslog interface for Tcl

Tcl-Extensions, 1.2.5

package require syslog 
 syslog ?-ident ident? ?-facility facility? ?-pid? ?-perror? priority message
Returns: nothing

# Description

This project provides a Tcl interface to the standard *nix syslog service. It implements a Tcl package that exports the full functionality of the underlying syslog facility to the Tcl programming language. This includes local and remote logging.

Syslog is a standard for forwarding log messages in an IP network. It is also used to refer to the implementation of this standard and API, that supports both remote and local logging. It is typically used for computer system management and security auditing; usually to aggregate log messages in a central repository. It is standardized within the Syslog working group of the IETF.

Syslog is available in all POSIX compliant and POSIX-like Operating Systems.

_-ident_ is a optional string argument that is used by syslog to 
differentiate between processes and log contexts. It is up to the user 
to specify any string here.

_-pid_ prints also the process pid in the log message

_-perror_ prints the message also to stderr

_-facility_ is an optional string dictated by syslog, and categorizes
the entity that logs the message, in the following categories/facilities:  
           Facility    Description
           auth        security/authorization messages
           authpriv    security/authorization messages (private)
           cron        clock daemon (cron and at)
           daemon      system daemons without separate facility value
           ftp         ftp daemon
           kern        kernel messages
           local[0-7]  local0 to local7 are reserved for local use
           lpr         line printer subsystem
           mail        mail subsystem
           news        USENET news subsystem
           syslog      messages generated internally by syslogd(8)
           user        generic user-level messages
           uucp        UUCP subsystem
    
    The default facility is "user".
    
    priority is another string dictated by syslog, that describes
    the severity of the message. In order of higher to lower severity, the
    possible strings are:  

           Priority    Description
           emergency   system is unusable
           alert       action must be taken immediately
           critical    critical conditions
           error       error conditions
           warning     warning conditions
           notice      normal, but significant, condition
           info        informational message
           debug       debug-level message
    
    This argument is mandatory.

#   EXAMPLE

    package require syslog
    
    syslog critical "Message 1"
    syslog -ident tclsh warning "Message 2"
    syslog -facility local0 notice "Message 3"
    syslog -ident tclsh -facility user error "Message 4"
    syslog -pid critical "Message 5.0"
    syslog -pid -ident tclsh critical "Message 5.1"
    syslog -pid -facility local0 debug "Message 5.1"
    syslog -pid -facility local1 -ident tclsh info "Message 5.2"
    syslog -pid -ident tclsh -facility local2 warning "Message 5.3"
    
    Outputs in /var/log/syslog (syslog timestamps and line prefix removed) :
    
     tclsh: Message 1
     tclsh: Message 2
     tclsh: Message 3
     testident: Message 4
     tclsh[7049]: Message 5.0
     my_ident[7049]: Message 5.1
     tclsh[7049]: Message 5.1
     my_ident[7049]: Message 5.2
     my_ident[7049]: Message 5.3
    
#   AUTHORS

    Alexandros Stergiakis sterg@kth.se  
    Massimo Manghi mxmanghi@apache.org

#   COPYRIGHT
    
    Copyright (C) 2008  Alexandros Stergiakis  
    Copyright (C) 2024  Massimo Manghi
    
    This program is free software: you can redistribute it and/or   
    modify it under the terms of the GNU General Public License as   
    published by the Free Software Foundation, either version 3 of   
    the License, or (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,  
    but WITHOUT ANY WARRANTY; without even the implied warranty of  
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License  
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
```
