blob: 347ae306fd73d01d1486a0a82e1d685ed03ef649 [file] [log] [blame]
Austin Schuh24adb6b2015-09-06 17:37:40 -07001// Copyright (c) 2013, Matt Godbolt
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are met:
6//
7// Redistributions of source code must retain the above copyright notice, this
8// list of conditions and the following disclaimer.
9//
10// Redistributions in binary form must reproduce the above copyright notice,
11// this list of conditions and the following disclaimer in the documentation
12// and/or other materials provided with the distribution.
13//
14// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
18// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24// POSSIBILITY OF SUCH DAMAGE.
25
26#include "internal/Debug.h"
27
28#include "seasocks/Logger.h"
29
30#include <stdarg.h>
31#include <stdio.h>
32
33namespace seasocks {
34
35const int MAX_MESSAGE_LENGTH = 1024;
36
37#define PRINT_TO_MESSAGEBUF() \
38 char messageBuf[MAX_MESSAGE_LENGTH]; \
39 va_list args; \
40 va_start(args, message); \
41 vsnprintf(messageBuf, MAX_MESSAGE_LENGTH, message, args); \
42 va_end(args)
43
44void Logger::debug(const char* message, ...) {
45#ifdef LOG_DEBUG_INFO
46 PRINT_TO_MESSAGEBUF();
47 log(DEBUG, messageBuf);
48#endif
49}
50
51void Logger::access(const char* message, ...) {
52 PRINT_TO_MESSAGEBUF();
53 log(ACCESS, messageBuf);
54}
55
56void Logger::info(const char* message, ...) {
57 PRINT_TO_MESSAGEBUF();
58 log(INFO, messageBuf);
59}
60
61void Logger::warning(const char* message, ...) {
62 PRINT_TO_MESSAGEBUF();
63 log(WARNING, messageBuf);
64}
65
66void Logger::error(const char* message, ...) {
67 PRINT_TO_MESSAGEBUF();
68 log(ERROR, messageBuf);
69}
70
71void Logger::severe(const char* message, ...) {
72 PRINT_TO_MESSAGEBUF();
73 log(SEVERE, messageBuf);
74}
75
76} // namespace seasocks