5 #ifndef SRC_IO_IO_LOG_H_
7 #define SRC_IO_IO_LOG_H_
10 #include "sandesh/sandesh_trace.h"
11 #include "sandesh/common/vns_types.h"
12 #include "sandesh/common/vns_constants.h"
13 #include "io/io_types.h"
17 #define IO_TRACE_BUF "IOTraceBuf"
18 #define IO_LOG_FLAG_SYSLOG 1
19 #define IO_LOG_FLAG_TRACE 2
20 #define IO_LOG_FLAG_ALL (IO_LOG_FLAG_SYSLOG | IO_LOG_FLAG_TRACE)
24 #define IO_LOG(obj, level, flags, category, ...) \
26 if (LoggingDisabled()) break; \
27 if ((flags) & IO_LOG_FLAG_SYSLOG) { \
28 obj##Log::Send(category, \
29 level, __FILE__, __LINE__, ##__VA_ARGS__); \
31 if ((flags) & IO_LOG_FLAG_TRACE) { \
32 obj##Trace::TraceMsg(IOTraceBuf, __FILE__, __LINE__, ##__VA_ARGS__); \
39 #define GEN_DIR_OUT ">"
40 #define GEN_DIR_IN "<"
46 #define TCP_DIR_OUT GEN_DIR_OUT
47 #define TCP_DIR_IN GEN_DIR_IN
48 #define TCP_DIR_NA GEN_DIR_NA
53 #define UDP_DIR_OUT GEN_DIR_OUT
54 #define UDP_DIR_IN GEN_DIR_IN
55 #define UDP_DIR_NA GEN_DIR_NA
60 #define IO_SERVER_LOG_STR(msg, cat, obj, level, flags, server, dir, arg) \
62 if (LoggingDisabled()) break; \
63 if ((server) && (server)->DisableSandeshLogMessages()) { \
64 LOG(DEBUG, "Server " << (server)->ToString() << dir << " " << arg);\
67 std::ostringstream out; \
69 IO_LOG(msg, level, flags, cat, \
70 (server) ? (server)->ToString() : "", dir, out.str()); \
73 #define IO_SESSION_LOG_STR(msg, cat, obj, level, flags, session, dir, arg) \
75 if (LoggingDisabled()) break; \
76 if ((session) && (session)->server() && \
77 (session)->server()->DisableSandeshLogMessages()) { \
78 LOG(DEBUG, "Session " << (session)->ToString() << dir<< " "<< arg);\
81 std::ostringstream out; \
83 IO_LOG(msg, level, flags, cat, \
84 (session) ? (session)->ToString() : "", dir, out.str()); \
87 #define IO_UT_LOG_DEBUG(msg, cat, dir, arg) \
89 if (LoggingDisabled()) break; \
90 std::ostringstream out; \
92 IO_LOG(msg, SandeshLevel::UT_DEBUG, IO_LOG_FLAG_SYSLOG, cat, dir, \
96 #define TCP_SERVER_LOG_STR(obj, level, flags, server, dir, arg) \
97 IO_SERVER_LOG_STR(TcpServerMessage, "TCP", obj, level, flags, \
100 #define TCP_SERVER_LOG_ERROR(server, dir, arg) \
101 TCP_SERVER_LOG_STR(TcpServerMessage, SandeshLevel::SYS_ERR, \
102 IO_LOG_FLAG_ALL, server, dir, arg)
103 #define TCP_SERVER_LOG_INFO(server, dir, arg) \
104 TCP_SERVER_LOG_STR(TcpServerMessage, SandeshLevel::SYS_INFO, \
105 IO_LOG_FLAG_SYSLOG, server, dir, arg)
106 #define TCP_SERVER_LOG_DEBUG(server, dir, arg) \
107 TCP_SERVER_LOG_STR(TcpServerMessage, SandeshLevel::SYS_DEBUG, \
108 IO_LOG_FLAG_SYSLOG, server, dir, arg)
109 #define TCP_SERVER_LOG_UT_DEBUG(server, dir, arg) \
110 TCP_SERVER_LOG_STR(TcpServerMessage, SandeshLevel::UT_DEBUG, \
111 IO_LOG_FLAG_SYSLOG, server, dir, arg)
113 #define TCP_SESSION_LOG_STR(obj, level, flags, session, dir, arg) \
114 IO_SESSION_LOG_STR(TcpSessionMessage, "TCP", obj, level, flags, \
117 #define TCP_SESSION_LOG_ERROR(session, dir, arg) \
118 TCP_SESSION_LOG_STR(TcpSessionMessage, SandeshLevel::SYS_ERR, \
119 IO_LOG_FLAG_ALL, session, dir, arg)
120 #define TCP_SESSION_LOG_INFO(session, dir, arg) \
121 TCP_SESSION_LOG_STR(TcpSessionMessage, SandeshLevel::SYS_INFO, \
122 IO_LOG_FLAG_SYSLOG, session, dir, arg)
123 #define TCP_SESSION_LOG_DEBUG(session, dir, arg) \
124 TCP_SESSION_LOG_STR(TcpSessionMessage, SandeshLevel::SYS_DEBUG, \
125 IO_LOG_FLAG_SYSLOG, session, dir, arg)
126 #define TCP_SESSION_LOG_UT_DEBUG(session, dir, arg) \
127 TCP_SESSION_LOG_STR(TcpSessionMessage, SandeshLevel::UT_DEBUG, \
128 IO_LOG_FLAG_SYSLOG, session, dir, arg)
130 #define TCP_UT_LOG_DEBUG(arg) \
131 IO_UT_LOG_DEBUG(TcpMessage, "TCP", TCP_DIR_NA, arg)
136 #define EVENT_MANAGER_LOG_ERROR(arg) \
138 if (LoggingDisabled()) break; \
139 std::ostringstream out; \
141 IO_LOG(EventManagerMessage, SandeshLevel::UT_ERR, IO_LOG_FLAG_ALL, \
148 #define UDP_EVENT_MANAGER_LOG_ERROR(arg) \
150 if (LoggingDisabled()) break; \
151 std::ostringstream out; \
153 IO_LOG(EventManagerMessage, SandeshLevel::UT_ERR, IO_LOG_FLAG_ALL, \
157 #define UDP_SERVER_LOG_STR(obj, level, flags, server, dir, arg) \
158 IO_SERVER_LOG_STR(UdpServerMessage, "UDP", obj, level, flags, \
160 #define UDP_SERVER_LOG_ERROR(server, dir, arg) \
161 UDP_SERVER_LOG_STR(UdpServerMessage, SandeshLevel::SYS_ERR, \
162 IO_LOG_FLAG_ALL, server, dir, arg)
163 #define UDP_SERVER_LOG_INFO(server, dir, arg) \
164 UDP_SERVER_LOG_STR(UdpServerMessage, SandeshLevel::SYS_INFO, \
165 IO_LOG_FLAG_SYSLOG, server, dir, arg)
166 #define UDP_SERVER_LOG_DEBUG(server, dir, arg) \
167 UDP_SERVER_LOG_STR(UdpServerMessage, SandeshLevel::SYS_DEBUG, \
168 IO_LOG_FLAG_SYSLOG, server, dir, arg)
169 #define UDP_SERVER_LOG_UT_DEBUG(server, dir, arg) \
170 UDP_SERVER_LOG_STR(UdpServerMessage, SandeshLevel::UT_DEBUG, \
171 IO_LOG_FLAG_SYSLOG, server, dir, arg)
174 #define UDP_SESSION_LOG_STR(obj, level, flags, session, dir, arg) \
175 IO_SESSION_LOG_STR(UdpSessionMessage, "UDP", obj, level, flags, \
178 #define UDP_UT_LOG_DEBUG(arg) \
179 IO_UT_LOG_DEBUG(UdpMessage, "UDP", UDP_DIR_NA, arg)
181 #endif // SRC_IO_IO_LOG_H_
SandeshTraceBufferPtr IOTraceBuf
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr