diff options
Diffstat (limited to 'packages/syslog/src/systemlog.pp')
-rw-r--r-- | packages/syslog/src/systemlog.pp | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/packages/syslog/src/systemlog.pp b/packages/syslog/src/systemlog.pp new file mode 100644 index 0000000000..f2c7e8f223 --- /dev/null +++ b/packages/syslog/src/systemlog.pp @@ -0,0 +1,165 @@ +{ + This file is part of the Free Pascal packages. + Copyright (c) 1999-2000 by Michael Van Canneyt, + member of the Free Pascal development team. + + This unit implements an interface to the Linux system logger. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + 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. + + **********************************************************************} +unit systemlog; + +{$mode objfpc} +{$linklib c} + + + interface + + { C default packing is dword } + +{$PACKRECORDS 4} + + const + _PATH_LOG = '/dev/log'; + + LOG_EMERG = 0; + LOG_ALERT = 1; + LOG_CRIT = 2; + LOG_ERR = 3; + LOG_WARNING = 4; + LOG_NOTICE = 5; + LOG_INFO = 6; + LOG_DEBUG = 7; + LOG_PRIMASK = $07; + + LOG_KERN = 0 shl 3; + LOG_USER = 1 shl 3; + LOG_MAIL = 2 shl 3; + LOG_DAEMON = 3 shl 3; + LOG_AUTH = 4 shl 3; + LOG_SYSLOG = 5 shl 3; + LOG_LPR = 6 shl 3; + LOG_NEWS = 7 shl 3; + LOG_UUCP = 8 shl 3; + LOG_CRON = 9 shl 3; + LOG_AUTHPRIV = 10 shl 3; + LOG_FTP = 11 shl 3; + LOG_LOCAL0 = 16 shl 3; + LOG_LOCAL1 = 17 shl 3; + LOG_LOCAL2 = 18 shl 3; + LOG_LOCAL3 = 19 shl 3; + LOG_LOCAL4 = 20 shl 3; + LOG_LOCAL5 = 21 shl 3; + LOG_LOCAL6 = 22 shl 3; + LOG_LOCAL7 = 23 shl 3; + LOG_NFACILITIES = 24; + LOG_FACMASK = $03f8; + INTERNAL_NOPRI = $10; + INTERNAL_MARK = LOG_NFACILITIES shl 3; + type + + CODE = record + name : string[10]; + val : longint; + end; +const + prioritynames : Array [1..12] of code = + ( (name : 'alert'; val : LOG_ALERT ), + ( name : 'crit'; val : LOG_CRIT ), + ( name : 'debug'; val : LOG_DEBUG ), + ( name : 'emerg'; val : LOG_EMERG ), + ( name : 'err';val : LOG_ERR ), + ( name : 'error'; val : LOG_ERR ), + ( name : 'info';val : LOG_INFO ), + ( name : 'none'; val : INTERNAL_NOPRI ), + ( name : 'notice'; val : LOG_NOTICE ), + ( name : 'panic'; val : LOG_EMERG ), + ( name : 'warn'; val : LOG_WARNING ), + ( name : 'warning'; val : LOG_WARNING ) +); + +const + + facilitynames : array [1..22] of code = + ( + ( name : 'auth'; val : LOG_AUTH ), + ( name : 'authpriv'; val : LOG_AUTHPRIV ), + ( name : 'cron'; val : LOG_CRON ), + ( name : 'daemon'; val : LOG_DAEMON ), + ( name : 'ftp'; val : LOG_FTP ), + ( name : 'kern'; val : LOG_KERN ), + ( name : 'lpr'; val : LOG_LPR ), + ( name : 'mail'; val : LOG_MAIL ), + ( name : 'mark'; val : INTERNAL_MARK ), + ( name : 'news'; val : LOG_NEWS ), + ( name : 'security'; val : LOG_AUTH ), + ( name : 'syslog'; val : LOG_SYSLOG ), + ( name : 'user'; val : LOG_USER ), + ( name : 'uucp'; val : LOG_UUCP ), + ( name : 'local0'; val : LOG_LOCAL0 ), + ( name : 'local1'; val : LOG_LOCAL1 ), + ( name : 'local2'; val : LOG_LOCAL2 ), + ( name : 'local3'; val : LOG_LOCAL3 ), + ( name : 'local4'; val : LOG_LOCAL4 ), + ( name : 'local5'; val : LOG_LOCAL5 ), + ( name : 'local6'; val : LOG_LOCAL6 ), + ( name : 'local7'; val : LOG_LOCAL7 ) + ); + + const + LOG_PID = $01; + LOG_CONS = $02; + LOG_ODELAY = $04; + LOG_NDELAY = $08; + LOG_NOWAIT = $10; + LOG_PERROR = $20; + + + function LOG_PRI(p : longint) : longint; + function LOG_MAKEPRI(fac,pri : longint) : longint; + function LOG_FAC(p : longint) : longint; + function LOG_MASK(pri : longint) : longint; + function LOG_UPTO(pri : longint) : longint; + + procedure closelog;cdecl;external; + procedure openlog(__ident:pchar; __option:longint; __facilit:longint);cdecl;external; + function setlogmask(__mask:longint):longint;cdecl;external; + procedure syslog(__pri:longint; __fmt:pchar; args:array of const);cdecl;external; +// procedure vsyslog(__pri:longint; __fmt:pchar; __ap:_BSD_VA_LIST_);cdecl;external; + + + implementation + + function LOG_PRI(p : longint) : longint; + begin + LOG_PRI:=p and LOG_PRIMASK; + end; + + function LOG_MAKEPRI(fac,pri : longint) : longint; + begin + LOG_MAKEPRI:=(fac shl 3) or pri; + end; + + + function LOG_FAC(p : longint) : longint; + begin + LOG_FAC:=(p and (LOG_FACMASK)) shr 3; + end; + + function LOG_MASK(pri : longint) : longint; + begin + LOG_MASK:=1 shl pri; + end; + + function LOG_UPTO(pri : longint) : longint; + begin + LOG_UPTO:=(1 shl (pri + 1)) - 1; + end; + +end. |