You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.9 KiB
C
72 lines
1.9 KiB
C
/*
|
|
* Yet another daemon library especially designed to be used
|
|
* with libsxmp based daemons.
|
|
*
|
|
* (c) Alexander Vdolainen 2016 <avdolainen@zoho.com>
|
|
*
|
|
* libsxmp is free software: you can redistribute it and/or modify it
|
|
* under the terms of the GNU Lesser General Public License as published
|
|
* by the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* libsxmp is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
* See the GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.";
|
|
*
|
|
*/
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
#include <errno.h>
|
|
#include <string.h>
|
|
#include <pthread.h>
|
|
#include <ctype.h>
|
|
#include <dlfcn.h>
|
|
#include <time.h>
|
|
|
|
#include <tdata/usrtc.h>
|
|
#include <sexpr/sexp.h>
|
|
|
|
#include <ydaemon/ydaemon.h>
|
|
|
|
void ydlog(yd_context_t *ctx, int olvl, const char *fmt, ...)
|
|
{
|
|
yd_log_t *log = ctx->logcontext;
|
|
FILE *logstr = NULL;
|
|
char tbuf[32];
|
|
struct tm tmb;
|
|
time_t ctime;
|
|
va_list args;
|
|
|
|
if(!log) return;
|
|
if(!(logstr = log->logstream)) return;
|
|
|
|
if(olvl >= log->verbose_level) { /* we can output this */
|
|
/* take a time and output this */
|
|
time(&ctime);
|
|
localtime_r(&ctime, &tmb);
|
|
asctime_r(&tmb, tbuf);
|
|
/* remove trailing \n */
|
|
tbuf[strlen(tbuf) - 1] = '\0';
|
|
fprintf(logstr, "[%s] ", tbuf);
|
|
switch(olvl) { /* out prefix */
|
|
case YL_DEBUG: fprintf(logstr, "[DEBUG] "); break;
|
|
case YL_INFO: fprintf(logstr, "[INFO] "); break;
|
|
case YL_WARN: fprintf(logstr, "[WARNING] "); break;
|
|
case YL_ERROR: fprintf(logstr, "[ERROR] "); break;
|
|
default: return;
|
|
}
|
|
|
|
va_start(args, fmt);
|
|
vfprintf(logstr, fmt, args);
|
|
va_end(args);
|
|
}
|
|
|
|
return;
|
|
}
|