|
|
1.1 root 1: /* logger.h - logging routines */
2:
3: /*
4: * $Header: /f/osi/h/RCS/logger.h,v 7.1 90/07/01 21:03:49 mrose Exp $
5: *
6: *
7: * $Log: logger.h,v $
8: * Revision 7.1 90/07/01 21:03:49 mrose
9: * pepsy
10: *
11: * Revision 7.0 89/11/23 21:55:48 mrose
12: * Release 6.0
13: *
14: */
15:
16: /*
17: * NOTICE
18: *
19: * Acquisition, use, and distribution of this module and related
20: * materials are subject to the restrictions of a license agreement.
21: * Consult the Preface in the User's Manual for the full terms of
22: * this agreement.
23: *
24: */
25:
26:
27: #ifndef _LOGGER_
28: #define _LOGGER_
29:
30: /* */
31:
32: typedef struct ll_struct {
33: char *ll_file; /* path name to logging file */
34:
35: char *ll_hdr; /* text to put in opening line */
36: char *ll_dhdr; /* dynamic header - changes */
37:
38: int ll_events; /* interesting events */
39: #define LLOG_NONE 0
40: #define LLOG_FATAL 0x01 /* fatal errors */
41: #define LLOG_EXCEPTIONS 0x02 /* exceptional events */
42: #define LLOG_NOTICE 0x04 /* informational notices */
43: #define LLOG_PDUS 0x08 /* PDU printing */
44: #define LLOG_TRACE 0x10 /* program tracing */
45: #define LLOG_DEBUG 0x20 /* full debugging */
46: #define LLOG_ALL 0xff
47: #define LLOG_MASK \
48: "\020\01FATAL\02EXCEPTIONS\03NOTICE\04PDUS\05TRACE\06DEBUG"
49:
50: int ll_syslog; /* interesting events to send to syslog */
51: /* takes same values as ll_events */
52:
53: int ll_msize; /* max size for log, in Kbytes */
54:
55: int ll_stat; /* assorted switches */
56: #define LLOGNIL 0x00
57: #define LLOGCLS 0x01 /* keep log closed, except when writing */
58: #define LLOGCRT 0x02 /* create log if necessary */
59: #define LLOGZER 0x04 /* truncate log when limits reached */
60: #define LLOGERR 0x08 /* log closed due to (soft) error */
61: #define LLOGTTY 0x10 /* also log to stderr */
62: #define LLOGHDR 0x20 /* static header allocated */
63: #define LLOGDHR 0x40 /* dynamic header allocated */
64:
65: int ll_fd; /* file descriptor */
66: } LLog;
67:
68: /* */
69:
70: #define SLOG(lp,event,what,args) \
71: if (lp -> ll_events & (event)) { \
72: (void) ll_log (lp, event, what, "%s", ll_preset args); \
73: } \
74: else
75:
76: #ifndef LLOG
77: #define LLOG(lp,event,args) SLOG (lp, event, NULLCP, args)
78: #endif
79:
80: #ifdef DEBUG
81: #define DLOG(lp,event,args) SLOG (lp, event, NULLCP, args)
82: #else
83: #define DLOG(lp,event,args)
84: #endif
85:
86:
87: #ifdef DEBUG
88:
89: #ifdef PEPSY_VERSION
90:
91: #ifdef __STDC__
92:
93: #define PLOGP(lp,args,pe,text,rw) \
94: if ((lp) -> ll_events & LLOG_PDUS) { \
95: pvpdu (lp, print_##args##_P, pe, text, rw); \
96: } \
97:
98: #define PLOG(lp,fnx,pe,text,rw) \
99: if ((lp) -> ll_events & LLOG_PDUS) { \
100: pvpdu (lp, fnx##_P, pe, text, rw); \
101: } \
102: else
103:
104: #else
105:
106: #define PLOGP(lp,args,pe,text,rw) \
107: if ((lp) -> ll_events & LLOG_PDUS) { \
108: pvpdu (lp, print_/* */args/* */_P, pe, text, rw); \
109: } \
110: else
111:
112: #define PLOG(lp,fnx,pe,text,rw) \
113: if ((lp) -> ll_events & LLOG_PDUS) { \
114: pvpdu (lp, fnx/* */_P, pe, text, rw); \
115: } \
116: else
117:
118: #endif
119:
120: #else /* !PEPSY_VERSION */
121:
122: #define PLOG(lp,fnx,pe,text,rw) \
123: if ((lp) -> ll_events & LLOG_PDUS) { \
124: vpdu (lp, fnx, pe, text, rw); \
125: } \
126: else
127:
128: #endif /* !PEPSY_VERSION */
129:
130: #else /* !DEBUG */
131: #define PLOG(lp,fnx,pe,text,rw)
132: #define PLOGP(lp,args,pe,text,rw)
133: #endif
134:
135:
136: int ll_open ();
137: int ll_log (), _ll_log ();
138: int ll_close ();
139:
140: void ll_hdinit ();
141: void ll_dbinit ();
142:
143: int ll_printf ();
144: int ll_sync ();
145:
146: char *ll_preset ();
147:
148: int ll_check ();
149: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.