+/*
+ * getlogthreshold - get the threshold for log output
+ *
+ * Returns the threshold for log output; anything logged with a log level
+ * lower than this will be silently dropped.
+ */
+loglevels getlogthreshold(void)
+{
+ return logthres;
+}
+
+/*
+ * vflog - write a log entry to an already opened log file.
+ * @logfile: The FILE * handle of the open log file.
+ * @format: A format string.
+ * @ap: The va_list of the parmeters for the format string.
+ *
+ * This function outputs a log entry to an opened file. A leading
+ * time/date stamp and a trailing newline are automatically added. The
+ * format parameter is of the same nature as that used in vprintf.
+ */
+static void vflog(FILE *logfile, const char *format, va_list ap)
+{
+ struct tm timestamp;
+ time_t timer = 0;
+
+ timer = time(NULL);
+ localtime_r(&timer, ×tamp);
+
+ fprintf(logfile, "[%02d/%02d/%4d %02d:%02d:%02d] %s[%d]: ",
+ timestamp.tm_mday,
+ timestamp.tm_mon + 1,
+ timestamp.tm_year + 1900,
+ timestamp.tm_hour,
+ timestamp.tm_min,
+ timestamp.tm_sec,
+ (logappname == NULL) ? "" : logappname,
+ getpid());
+ vfprintf(logfile, format, ap);
+ fprintf(logfile, "\n");
+
+ return;
+}
+
+/*
+ * flog - write a log entry to an already opened log file.
+ * @logfile: The FILE * handle of the open log file.
+ * @format: A format string.
+ *
+ * This function outputs a log entry to an opened file. A leading
+ * time/date stamp and a trailing newline are automatically added. The
+ * format parameter is of the same nature as that used in printf.
+ */
+static void flog(FILE *logfile, const char *format, ...)
+{
+ va_list ap;
+
+ va_start(ap, format);
+ vflog(logfile, format, ap);
+ va_end(ap);
+}
+