9#define RetAddr() _ReturnAddress()
12#define RetAddr() __builtin_return_address(0)
15#include <interface/slog-i.h>
18#define GETLOGMGR() SNS::SApplication::getSingletonPtr() ? SNS::SApplication::getSingleton().GetLogManager() : NULL
99 SLogStream &writeULongLong(
unsigned long long t);
118 SLogStream &writeWString(
const wchar_t *t,
int nLen = -1);
145typedef void (*LogCallback)(
const char *tag,
const char *pLogStr,
int level,
const char *file,
int line,
const char *fun,
void *retAddr);
169 Log(
const char *tag,
int level,
const char *filename,
const char *funcname,
int lineIndex,
void *pAddr);
186 static void setLogLevel(
int nLevel);
192 static void setLogCallback(LogCallback logCallback);
198 static void setLogEcho(
bool bEnable);
211 static void DefCallback(
const char *tag,
const char *pLogStr,
int level,
const char *file,
int line,
const char *fun,
void *retAddr);
213 char m_tag[MAX_TAGLEN];
219 char m_logBuf[MAX_LOGLEN + 1];
222 static bool s_enableEcho;
223 static int s_logLevel;
224 static LogCallback gs_logCallback;
230#define FUNCNAME __FUNCTION__
232#define FUNCNAME __PRETTY_FUNCTION__
241#define SLOG(tag, level) SNS::Log(tag, level, __FILE__, FUNCNAME, __LINE__, RetAddr()).stream()
251#define SLOG_FMT(tag, level, logformat, ...) SLOG(tag, level).writeFormat(logformat, ##__VA_ARGS__)
254#define SLOGD() SLOG(kLogTag, SNS::LOG_LEVEL_DEBUG)
255#define SLOGI() SLOG(kLogTag, SNS::LOG_LEVEL_INFO)
256#define SLOGW() SLOG(kLogTag, SNS::LOG_LEVEL_WARN)
257#define SLOGE() SLOG(kLogTag, SNS::LOG_LEVEL_ERROR)
258#define SLOGF() SLOG(kLogTag, SNS::LOG_LEVEL_FATAL)
261#define SLOGD2(tag) SLOG(tag, SNS::LOG_LEVEL_DEBUG)
262#define SLOGI2(tag) SLOG(tag, SNS::LOG_LEVEL_INFO)
263#define SLOGW2(tag) SLOG(tag, SNS::LOG_LEVEL_WARN)
264#define SLOGE2(tag) SLOG(tag, SNS::LOG_LEVEL_ERROR)
265#define SLOGF2(tag) SLOG(tag, SNS::LOG_LEVEL_FATAL)
268#define kSoui4Tag "soui4"
269#define SSLOGD() SLOG(kSoui4Tag, SNS::LOG_LEVEL_DEBUG)
270#define SSLOGI() SLOG(kSoui4Tag, SNS::LOG_LEVEL_INFO)
271#define SSLOGW() SLOG(kSoui4Tag, SNS::LOG_LEVEL_WARN)
272#define SSLOGE() SLOG(kSoui4Tag, SNS::LOG_LEVEL_ERROR)
273#define SSLOGF() SLOG(kSoui4Tag, SNS::LOG_LEVEL_FATAL)
276#define SLOGFMTD(logformat, ...) SLOG_FMT(kLogTag, SNS::LOG_LEVEL_DEBUG, logformat, ##__VA_ARGS__)
277#define SLOGFMTI(logformat, ...) SLOG_FMT(kLogTag, SNS::LOG_LEVEL_INFO, logformat, ##__VA_ARGS__)
278#define SLOGFMTW(logformat, ...) SLOG_FMT(kLogTag, SNS::LOG_LEVEL_WARN, logformat, ##__VA_ARGS__)
279#define SLOGFMTE(logformat, ...) SLOG_FMT(kLogTag, SNS::LOG_LEVEL_ERROR, logformat, ##__VA_ARGS__)
280#define SLOGFMTF(logformat, ...) SLOG_FMT(kLogTag, SNS::LOG_LEVEL_FATAL, logformat, ##__VA_ARGS__)
283#define SLOGFMTD2(tag, logformat, ...) SLOG_FMT(tag, SNS::LOG_LEVEL_DEBUG, logformat, ##__VA_ARGS__)
284#define SLOGFMTI2(tag, logformat, ...) SLOG_FMT(tag, SNS::LOG_LEVEL_INFO, logformat, ##__VA_ARGS__)
285#define SLOGFMTW2(tag, logformat, ...) SLOG_FMT(tag, SNS::LOG_LEVEL_WARN, logformat, ##__VA_ARGS__)
286#define SLOGFMTE2(tag, logformat, ...) SLOG_FMT(tag, SNS::LOG_LEVEL_ERROR, logformat, ##__VA_ARGS__)
287#define SLOGFMTF2(tag, logformat, ...) SLOG_FMT(tag, SNS::LOG_LEVEL_FATAL, logformat, ##__VA_ARGS__)
289#define SSLOGFMTD(logformat, ...) SLOG_FMT(kSoui4Tag, SNS::LOG_LEVEL_DEBUG, logformat, ##__VA_ARGS__)
290#define SSLOGFMTI(logformat, ...) SLOG_FMT(kSoui4Tag, SNS::LOG_LEVEL_INFO, logformat, ##__VA_ARGS__)
291#define SSLOGFMTW(logformat, ...) SLOG_FMT(kSoui4Tag, SNS::LOG_LEVEL_WARN, logformat, ##__VA_ARGS__)
292#define SSLOGFMTE(logformat, ...) SLOG_FMT(kSoui4Tag, SNS::LOG_LEVEL_ERROR, logformat, ##__VA_ARGS__)
293#define SSLOGFMTF(logformat, ...) SLOG_FMT(kSoui4Tag, SNS::LOG_LEVEL_FATAL, logformat, ##__VA_ARGS__)
Log(const char *tag, int level, const char *filename, const char *funcname, int lineIndex, void *pAddr)
构造函数
SLogBinary(const char *buf, int len)
构造函数
const char * _buf
二进制数据缓冲区
SLogStream(char *buf, int len)
构造函数
SLogStream & operator<<(const void *t)
重载运算符<<,用于输出各种类型的数据
SLogStream & writeFormat(const char *format,...)
格式化输出日志