Changeset 174 for trunk/archive/pslib/src/Utils/logmsg.c
- Timestamp:
- Mar 9, 2004, 3:01:28 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/archive/pslib/src/Utils/logmsg.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/archive/pslib/src/Utils/logmsg.c
r141 r174 56 56 57 57 /*****************************************************************************/ 58 /* 59 * Set the format of psLogMsg output. 60 * 61 * More precisely, provide a string consisting of the letters H (host), L (level), M (message), 62 * N (name), and T (time). The default is "HLMNT" 63 */ 64 static int log_time = 1, log_host = 1, log_level = 1, log_name = 1, log_msg = 1; 65 66 void psSetLogFormat(const char *fmt) 67 { 68 int nlog_time, nlog_host, nlog_level, nlog_name, nlog_msg; // new values of log_time etc. 69 70 nlog_host = nlog_level = nlog_msg = nlog_name = nlog_time = 0; // don't log anything 71 for (const char *ptr = fmt; *ptr != '\0'; ptr++) { 72 switch (*ptr) { 73 case 'H': case 'h': 74 nlog_host = 1; 75 break; 76 case 'L': case 'l': 77 nlog_level = 1; 78 break; 79 case 'M': case 'm': 80 nlog_msg = 1; 81 break; 82 case 'N': case 'n': 83 nlog_name = 1; 84 break; 85 case 'T': case 't': 86 nlog_time = 1; 87 break; 88 default: 89 psError(__func__, "Unknown logging keyword %c", *ptr); 90 break; 91 } 92 } 93 94 if (!nlog_msg) { 95 psTrace("utils.logMsg", 1, "You must at least log error messages (You chose \"%s\")", fmt); 96 } 97 98 log_host = nlog_host; 99 log_level = nlog_level; 100 log_msg = nlog_msg; 101 log_name = nlog_name; 102 log_time = nlog_time; 103 } 104 105 106 /*****************************************************************************/ 58 107 #if !defined(HOST_NAME_MAX) // should be in limits.h 59 108 # define HOST_NAME_MAX 256 … … 109 158 110 159 char head[HOST_NAME_MAX + 40]; // yes, this is long enough 160 char *head_ptr = head; // where we've got to in head 111 161 time_t clock = time(NULL); 112 162 struct tm *utc = gmtime(&clock); 113 163 114 sprintf(head, "%4d:%02d:%02d %02d:%02d:%02dZ|%-20s|%c|%-15s|", 115 utc->tm_year + 1900, utc->tm_mon + 1, utc->tm_mday, 116 utc->tm_hour, utc->tm_min, utc->tm_sec, 117 hostname, clevel, name); 118 164 if (log_time) { 165 sprintf(head_ptr, "%4d:%02d:%02d %02d:%02d:%02dZ", 166 utc->tm_year + 1900, utc->tm_mon + 1, utc->tm_mday, 167 utc->tm_hour, utc->tm_min, utc->tm_sec); 168 head_ptr += strlen(head_ptr); 169 } 170 if (log_host) { 171 if (head_ptr > head) { 172 *head_ptr++ = '|'; 173 } 174 sprintf(head_ptr, "%-20s", hostname); 175 head_ptr += strlen(head_ptr); 176 } 177 if (log_level) { 178 if (head_ptr > head) { 179 *head_ptr++ = '|'; 180 } 181 sprintf(head_ptr, "%c", clevel); 182 head_ptr += strlen(head_ptr); 183 } 184 if (log_name) { 185 if (head_ptr > head) { 186 *head_ptr++ = '|'; 187 } 188 sprintf(head_ptr, "%-15s", name); 189 head_ptr += strlen(head_ptr); 190 } 191 if (head_ptr > head) { 192 *head_ptr++ = '|'; 193 } 194 *head_ptr = '\0'; 195 119 196 switch (logDest) { 120 197 case PS_LOG_TO_STDOUT: … … 139 216 abort(); 140 217 } 141 142 va_end(ap);143 218 } 144 219 … … 149 224 150 225 p_psVLogMsg(name, level, fmt, ap); 226 va_end(ap); 151 227 } 152 228 … … 156 232 int main(void) 157 233 { 158 psSetTraceLevel("utils.logMsg", 1 0);234 psSetTraceLevel("utils.logMsg", 1); 159 235 160 236 psSetLogDestination(PS_LOG_TO_STDERR); 161 237 psSetLogLevel(PS_LOG_INFO); 238 psSetLogFormat("NM"); 162 239 163 240 psLogMsg("aaa", PS_LOG_INFO, "Hello World\n");
Note:
See TracChangeset
for help on using the changeset viewer.
