111 lines
2.3 KiB
C
111 lines
2.3 KiB
C
/*
|
|
* wmfs2 by Martin Duquesnoy <xorg62@gmail.com> { for(i = 2011; i < 2111; ++i) ©(i); }
|
|
* File created by David Delassus.
|
|
* For license, see COPYING.
|
|
*/
|
|
|
|
#include "wmfs.h"
|
|
#include "util.h"
|
|
|
|
void
|
|
log_init(void)
|
|
{
|
|
char *path = NULL;
|
|
|
|
xasprintf(&path, "%s/wmfs-%s.log", P_tmpdir, DisplayString(W->dpy));
|
|
|
|
if(path)
|
|
{
|
|
/* open log */
|
|
if(!(W->log = fopen(path, "a")))
|
|
warnx("Can't open log file '%s': %s\n", path, strerror(errno));
|
|
|
|
free(path);
|
|
}
|
|
}
|
|
|
|
/** Print a warning on standard error output and in the log file
|
|
* \param format Format string (same syntax as printf)
|
|
*/
|
|
void
|
|
warnl(const char *format, ...)
|
|
{
|
|
va_list args;
|
|
|
|
if(W->log)
|
|
{
|
|
va_start(args, format);
|
|
vfprintf(W->log, format, args);
|
|
fprintf(W->log, "\n");
|
|
va_end(args);
|
|
}
|
|
|
|
va_start(args, format);
|
|
vwarn(format, args);
|
|
va_end(args);
|
|
}
|
|
|
|
/** Print an error on standard error output and in the log file
|
|
* \param eval Exit value
|
|
* \param format Format string (same syntax as printf)
|
|
*/
|
|
void
|
|
errl(int eval, const char *format, ...)
|
|
{
|
|
va_list args;
|
|
|
|
if(W->log)
|
|
{
|
|
va_start(args, format);
|
|
vfprintf(W->log, format, args);
|
|
fprintf(W->log, "\n");
|
|
va_end(args);
|
|
fclose (W->log);
|
|
}
|
|
|
|
va_start(args, format);
|
|
verr(eval, format, args);
|
|
}
|
|
/** Print a warning on standard error output and in the log file
|
|
* \param format Format string (same syntax as printf)
|
|
*/
|
|
void
|
|
warnxl(const char *format, ...)
|
|
{
|
|
va_list args;
|
|
|
|
if(W->log)
|
|
{
|
|
va_start(args, format);
|
|
vfprintf(W->log, format, args);
|
|
fprintf(W->log, "\n");
|
|
va_end(args);
|
|
}
|
|
|
|
va_start(args, format);
|
|
vwarnx(format, args);
|
|
va_end(args);
|
|
}
|
|
|
|
/** Print an error on standard error output and in the log file
|
|
* \param eval Exit value
|
|
* \param format Format string (same syntax as printf)
|
|
*/
|
|
void
|
|
errxl(int eval, const char *format, ...)
|
|
{
|
|
va_list args;
|
|
|
|
if(W->log)
|
|
{
|
|
va_start(args, format);
|
|
vfprintf(W->log, format, args);
|
|
fprintf(W->log, "\n");
|
|
va_end(args);
|
|
fclose (W->log);
|
|
}
|
|
|
|
va_start(args, format);
|
|
verrx(eval, format, args);
|
|
}
|