Clustal Omega 1.2.4
log.h
Go to the documentation of this file.
1/* -*- mode: c; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
3/*********************************************************************
4 * Clustal Omega - Multiple sequence alignment
5 *
6 * Copyright (C) 2010 University College Dublin
7 *
8 * Clustal-Omega is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of the
11 * License, or (at your option) any later version.
12 *
13 * This file is part of Clustal-Omega.
14 *
15 ********************************************************************/
16
17/*
18 * RCS $Id$
19 */
20
21
22#include <stdio.h>
23#include <stdarg.h>
24
25#ifndef LOG_H
26#define LOG_H
27
28
29#define LOG_DEBUG 0
30#define LOG_VERBOSE 1
31#define LOG_INFO 2
32#define LOG_WARN 3
33#define LOG_FORCED_DEBUG 4
34#define LOG_ERROR 5
35#define LOG_CRITICAL 6
36#define LOG_FATAL 7
37
38#define LOG_NUM_LEVELS 8
39
40
41typedef struct {
42 /* the higher the level, the more priority it has. numbers must be
43 * sequential
44 */
45
46 /* array of function pointers */
47 void (*prFunc[LOG_NUM_LEVELS]) (FILE *prFP, char *pcFormat, va_list rVArgList);
48 FILE *prFP[LOG_NUM_LEVELS];
49 char *prPrefix[LOG_NUM_LEVELS];
50
51 /* everything above this level will be printed */
53} log_t;
54
55
56
57/* a standard logger */
58extern log_t rLog;
59
60
61
62void
64void
65Log(log_t *prLog, int iLevel, char *pcFmt, ...);
66void
67LogSetFP(log_t *log, int level, FILE *fp);
68void
69LogSetFPForAll(log_t *log, FILE *fp);
70FILE *
71LogGetFP(log_t *prLog, int iLevel);
72void
73LogMute(log_t *log, int level);
74void
75LogMuteAll(log_t *log);
76void
77LogFuncOverwrite(log_t *prLog, int iLevel,
78 void (*Func) (FILE *prFP, char *pcFormat, va_list rVArgList));
79
80
81#endif
log_t rLog
Definition log.c:34
void LogMute(log_t *log, int level)
Mute certain level (i.e set the corresponding function to NULL)
Definition log.c:275
void LogSetFPForAll(log_t *log, FILE *fp)
Change file pointer for all levels.
Definition log.c:257
void LogFuncOverwrite(log_t *prLog, int iLevel, void(*Func)(FILE *prFP, char *pcFormat, va_list rVArgList))
Definition log.c:307
void Log(log_t *prLog, int iLevel, char *pcFmt,...)
Log to certain level.
Definition log.c:186
void LogDefaultSetup(log_t *log)
Sets up default function pointers.
Definition log.c:152
void LogMuteAll(log_t *log)
Mute all channels.
Definition log.c:290
void LogSetFP(log_t *log, int level, FILE *fp)
Change file pointer for certain level.
Definition log.c:223
#define LOG_NUM_LEVELS
Definition log.h:38
FILE * LogGetFP(log_t *prLog, int iLevel)
Return file pointer for certain level.
Definition log.c:239
Definition log.h:41
int iLogLevelEnabled
Definition log.h:52