| 368 | | vpvmlogprintf(fmt, ap) | | 369 | | char *fmt; | | 370 | | va_list ap; | | 371 | | { | | 372 | | char vtmp[1024]; | | 373 | | char *truncated; | | 374 | | int cnt = 0; | | 375 | | int cc; | | 376 | | | | 377 | | #ifdef TIMESTAMPLOG | | 378 | | time_t now; | | 379 | | struct tm *tmp; | | 380 | | | | 381 | | time(&now); | | 382 | | tmp = localtime(&now); | | 383 | | #endif | | 384 | | | | 385 | | | | 386 | | | | 387 | | | | 388 | | | | 389 | | | | 390 | | cc = vsnprintf(vtmp, sizeof(vtmp), fmt, ap); | | 391 | | truncated = ( cc >= 0 && cc < sizeof(vtmp) ) | | 392 | | ? "" : "[...]\n"; | | 393 | | | | 394 | | if (log_how & 1) { | | 395 | | if (atnewline) { | | 396 | | if (pvmmytid) | | 397 | | fprintf(stderr, "[t%x] ", pvmmytid); | | 398 | | else | | 399 | | fprintf(stderr, "[pvmd pid%d] ", pvmmyupid); | | 400 | | | | 401 | | #ifdef TIMESTAMPLOG | | 402 | | fprintf(stderr, "%02d/%02d %02d:%02d:%02d ", | | 403 | | tmp->tm_mon + 1, | | 404 | | tmp->tm_mday, | | 405 | | tmp->tm_hour, | | 406 | | tmp->tm_min, | | 407 | | tmp->tm_sec); | | 408 | | #endif | | 409 | | } | | 410 | | | | 411 | | cc = fprintf(stderr, "%s%s", vtmp, truncated); | | 412 | | cnt = ( cc >= 0 ) ? cnt + cc : cc; | | 413 | | fflush(stderr); | | 414 | | } | | 415 | | | | 416 | | if (log_how & 2) { | | 417 | | if (log_alrdy < pvmdlogmax) { | | 418 | | if (atnewline) { | | 419 | | if (pvmmytid) | | 420 | | fprintf(log_ff, "[t%x] ", pvmmytid); | | 421 | | else | | 422 | | fprintf(log_ff, "[pvmd pid%d] ", pvmmyupid); | | 423 | | | | 424 | | #ifdef TIMESTAMPLOG | | 425 | | fprintf(log_ff, "%02d/%02d %02d:%02d:%02d ", | | 426 | | tmp->tm_mon + 1, | | 427 | | tmp->tm_mday, | | 428 | | tmp->tm_hour, | | 429 | | tmp->tm_min, | | 430 | | tmp->tm_sec); | | 431 | | #endif | | 432 | | } | | 433 | | | | 434 | | | | 435 | | cc = fprintf(log_ff, "%s%s", vtmp, truncated); | | 436 | | cnt = ( cnt >= 0 ) ? ( ( cc >= 0 ) ? cnt + cc : cc ) : cnt; | | 437 | | fflush(log_ff); | | 438 | | | | 439 | | if ((log_alrdy += cnt) >= pvmdlogmax) | | 440 | | (void)write(log_fd, toomuch, strlen(toomuch)); | | 441 | | } | | 442 | | } | | 443 | | | | 444 | | atnewline = (fmt[strlen(fmt) - 1] == '\n') ? 1 : 0; | | 445 | | | | 446 | | | | 447 | | | | 448 | | | | 449 | | | | 450 | | | | 451 | | | | 452 | | return(cnt); | | 453 | | } |
|