/* $Header: /belch_a/users/rearl/tinymuck/src/RCS/log.c,v 1.5 90/08/02 18:56:08 rearl Exp $ */

/*
 * $Log:	log.c,v $
 * Revision 1.5  90/08/02  18:56:08  rearl
 * Fixed NULL file pointer bugs.  Netmuck no longer crashes on a non-existent
 * file / missing directory.  All errors / commands are logged to stderr
 * if a file error occurs.
 * 
 * Revision 1.4  90/07/29  17:38:55  rearl
 * Fixed double spaces in log files.
 * 
 * Revision 1.3  90/07/23  14:52:17  casie
 * *** empty log message ***
 * 
 * Revision 1.2  90/07/21  01:42:22  casie
 * good question... lots of changes, in fact, a complete rewrite!
 * 
 * Revision 1.1  90/07/19  23:03:51  casie
 * Initial revision
 *
 */
 
/*
 * Handles logging of tinymuck
 *
 * Copyright (c) 1990 Chelsea Dyerman 
 * University of California, Berkeley (XCF)
 *
 */

#include "config.h"

#include <stdio.h>
#include <sys/types.h>

#include <time.h>
#include "strings.h"
#include "externs.h" 

void log_status(format, p1, p2, p3, p4, p5, p6, p7, p8)
char *format, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{
  FILE *fp;
  time_t lt;
	
  lt = time(NULL);
	
  if ((fp = fopen(LOG_STATUS, "a")) == NULL) {
    fprintf(stderr, "Unable to open %s!\n", LOG_STATUS);
    fprintf(stderr, "%.16s: ", ctime(&lt));
    fprintf(stderr, format, p1, p2, p3, p4, p5, p6, p7, p8);
  } else {
    fprintf(fp, "%.16s: ", ctime(&lt));
    fprintf(fp, format, p1, p2, p3, p4, p5, p6, p7, p8);
    fclose(fp);
  }
}

void log_create(format, p1, p2, p3, p4, p5, p6, p7, p8)
char *format, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{
  FILE *fp;
  time_t lt;
	
  lt = time(NULL);
	
  if ((fp = fopen(LOG_CREATE, "a")) == NULL) {
    fprintf(stderr, "Unable to open %s!\n", LOG_CREATE);
    fprintf(stderr, "%.16s: ", ctime(&lt));
    fprintf(stderr, format, p1, p2, p3, p4, p5, p6, p7, p8);
  } else {
    fprintf(fp, "%.16s: ", ctime(&lt));
    fprintf(fp, format, p1, p2, p3, p4, p5, p6, p7, p8);
    fclose(fp);
  }
}

void log_muf(format, p1, p2, p3, p4, p5, p6, p7, p8)
char *format, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{
  FILE *muflog;

  if ((muflog = fopen(LOG_MUF, "a")) == NULL) {
    fprintf(stderr, "Unable to open %s!\n", LOG_MUF);
    fprintf(stderr, format, p1, p2, p3, p4, p5, p6, p7, p8);
  } else {
    fprintf(muflog, format, p1, p2, p3, p4, p5, p6, p7, p8);
    fclose(muflog);
  }
}

void log_gripe(format, p1, p2, p3, p4, p5, p6, p7, p8)
char *format, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{
  FILE *fp;
  time_t lt;
	
  lt = time(NULL);
	
  if ((fp = fopen(LOG_GRIPE, "a")) == NULL) {
    fprintf(stderr, "Unable to open %s!\n", LOG_GRIPE);
    fprintf(stderr, "%.16s: ", ctime(&lt));
    fprintf(stderr, format, p1, p2, p3, p4, p5, p6, p7, p8);
  } else {
    fprintf(fp, "%.16s: ", ctime(&lt));
    fprintf(fp, format, p1, p2, p3, p4, p5, p6, p7, p8);
    fclose(fp);
  }
}

void log_command(format, p1, p2, p3, p4, p5, p6, p7, p8)
char *format, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
{
  FILE *fp;

  if ((fp = fopen(COMMAND_LOG, "a")) == NULL) {
    fprintf(stderr, "Unable to open %s!\n", COMMAND_LOG);
    fprintf(stderr, format, p1, p2, p3, p4, p5, p6, p7, p8);
  } else {
    fprintf(fp, format, p1, p2, p3, p4, p5, p6, p7, p8);
    fclose(fp);
  }
}