5 #ifndef SRC_BGP_ROUTING_INSTANCE_ROUTING_INSTANCE_LOG_H_
6 #define SRC_BGP_ROUTING_INSTANCE_ROUTING_INSTANCE_LOG_H_
8 #include <sandesh/sandesh_types.h>
9 #include <sandesh/sandesh.h>
10 #include <sandesh/sandesh_trace.h>
11 #include <sandesh/common/vns_types.h>
12 #include <sandesh/common/vns_constants.h>
16 #include "bgp/routing-instance/routing_instance_analytics_types.h"
22 #define ROUTING_INSTANCE_DORMANT_TRACE_BUFFER_THRESHOLD_1K 1024
23 #define ROUTING_INSTANCE_DORMANT_TRACE_BUFFER_SIZE_64K (64*1024)
25 #define RTINSTANCE_TRACE_BUF "RoutingInstanceTraceBuf"
28 #define RTINSTANCE_LOG_FLAG_SYSLOG 1
29 #define RTINSTANCE_LOG_FLAG_TRACE 2
30 #define RTINSTANCE_LOG_FLAG_ALL (RTINSTANCE_LOG_FLAG_SYSLOG | \
31 RTINSTANCE_LOG_FLAG_TRACE) \
33 #define RTINSTANCE_LOG_INTERNAL(type, server, rti, level, flags, ...) \
35 if (LoggingDisabled()) break; \
36 if ((flags) & RTINSTANCE_LOG_FLAG_SYSLOG) { \
37 bgp_log_test::LogServerName(server); \
38 RoutingInstance##type##Log::Send("RoutingInstance", \
39 level, __FILE__, __LINE__, ##__VA_ARGS__); \
41 if ((flags) & RTINSTANCE_LOG_FLAG_TRACE) { \
42 RoutingInstance##type::TraceMsg((rti)->trace_buffer(), __FILE__, \
43 __LINE__, ##__VA_ARGS__); \
47 #define RTINSTANCE_LOG_INTERNAL2(type, server, level, flags, ...) \
49 if (LoggingDisabled()) break; \
50 if ((flags) & RTINSTANCE_LOG_FLAG_SYSLOG) { \
51 bgp_log_test::LogServerName(server); \
52 RoutingInstance##type##Log::Send("RoutingInstance", \
53 level, __FILE__, __LINE__, ##__VA_ARGS__); \
55 if ((flags) & RTINSTANCE_LOG_FLAG_TRACE) { \
56 const std::string __trace_buf(RTINSTANCE_TRACE_BUF); \
57 RoutingInstance##type::TraceMsg(RoutingInstanceTraceBuf, \
58 __FILE__, __LINE__, ##__VA_ARGS__); \
62 #define RTINSTANCE_LOG(type, rtinstance, level, flags, ...) \
63 RTINSTANCE_LOG_INTERNAL(type, (rtinstance)->server(), rtinstance, level, \
65 (rtinstance)->GetVirtualNetworkName(), \
66 (rtinstance)->name(), ##__VA_ARGS__); \
68 #define RTINSTANCE_LOG_MESSAGE(server, level, flags, ...) \
69 RTINSTANCE_LOG_INTERNAL2(Message, server, level, flags, ##__VA_ARGS__); \
71 #define RTINSTANCE_LOG_WARNING_MESSAGE(server, flags, ...) \
72 RTINSTANCE_LOG_INTERNAL2(WarningMessage, server, SandeshLevel::SYS_WARN, \
73 flags, ##__VA_ARGS__); \
75 #define RTINSTANCE_LOG_PEER(type, rtinstance, peer, level, flags, ...) \
76 RTINSTANCE_LOG_INTERNAL(Peer##type, (rtinstance)->server(), rtinstance, \
78 (rtinstance)->GetVirtualNetworkName(), \
79 (rtinstance)->name(), \
80 (peer)->peer_key().endpoint.address().to_string(), \
83 #define RTINSTANCE_LOG_TABLE(type, rtinstance, table, level, flags, ...) \
84 RTINSTANCE_LOG_INTERNAL(Table##type, (rtinstance)->server(), rtinstance, \
86 (rtinstance)->GetVirtualNetworkName(), \
87 (rtinstance)->name(), (table)->name(), \
88 Address::FamilyToString((table)->family()), \
91 #define ROUTING_INSTANCE_COLLECTOR_INFO(info) \
93 if (LoggingDisabled()) break; \
94 ROUTING_INSTANCE_COLLECTOR_SEND(info); \
97 #endif // SRC_BGP_ROUTING_INSTANCE_ROUTING_INSTANCE_LOG_H_
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
SandeshTraceBufferPtr RoutingInstanceTraceBuf