Initial commit.
[qa-tools:testrunner-lite.git] / src / log.h
1 /*
2  * This file is part of testrunner-lite
3  *
4  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
5  *
6  * Contact: Riku Halonen <riku.halonen@nokia.com>
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * version 2.1 as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA
21  *
22  */
23
24 #ifndef LOG_H
25 #define LOG_H
26
27 /* ------------------------------------------------------------------------- */
28 /* INCLUDES */
29 #include <sys/time.h>
30 #include <time.h>
31 #include <stdio.h>
32 #include <syslog.h>
33 #include "testrunnerlite.h"
34 /* ------------------------------------------------------------------------- */
35 /* CONSTANTS */
36 #define LOG_MSG_MAX_SIZE 2048
37
38 /* ------------------------------------------------------------------------- */
39 /* MACROS */
40 #define LOG_MSG(__level__,__format__, __args__ ...)\
41         do{                                                             \
42                 log_msg (__level__, __FILE__, __FUNCTION__, __LINE__,   \
43                          __format__, ##__args__);                       \
44         } while (0)
45 #define LOG_TYPES_COUNT LOG_DEBUG + 1
46
47 /* ------------------------------------------------------------------------- */
48 /* DATA TYPES */
49 /* ------------------------------------------------------------------------- */
50
51
52 /* ------------------------------------------------------------------------- */
53 /* FORWARD DECLARATIONS */
54 /* None */
55
56 /* ------------------------------------------------------------------------- */
57 /* STRUCTURES */
58 enum log_levels {
59     LOG_LEVEL_SILENT = 0,
60     LOG_LEVEL_INFO,
61     LOG_LEVEL_DEBUG,
62     LOG_LEVELS_COUNT, /* number of entries in enum */
63 };
64
65 /* ------------------------------------------------------------------------- */
66 /* FUNCTION PROTOTYPES */
67
68 /* ------------------------------------------------------------------------- */
69 void log_msg(int type, const char *file, const char *function,
70              int lineno, char *format, ...);
71 /* ------------------------------------------------------------------------- */
72 void log_init(testrunner_lite_options *opts);
73 /* ------------------------------------------------------------------------- */
74 void log_close (void);
75 /* ------------------------------------------------------------------------- */
76
77 #endif                          /* LOG_H */
78 /* End of file */
79