soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
slog-i.h
1#ifndef __SLOG_I__H__
2#define __SLOG_I__H__
3
4#include <interface/obj-ref-i.h>
5#include <windows.h>
6#include <time.h>
7
8SNSBEGIN
9
10//! the max log content length.
11enum
12{
13 LOG4Z_LOG_BUF_SIZE = 10240,
14};
15
16//! LOG Level
17enum ENUM_LOG_LEVEL
18{
19 LOG_LEVEL_TRACE = 0,
20 LOG_LEVEL_DEBUG,
21 LOG_LEVEL_INFO,
22 LOG_LEVEL_WARN,
23 LOG_LEVEL_ERROR,
24 LOG_LEVEL_ALARM,
25 LOG_LEVEL_FATAL,
26};
27
28#undef INTERFACE
29#define INTERFACE IOutputFileBuilder
30DECLARE_INTERFACE_(IOutputFileBuilder, IObjRef)
31{
32 //! 添加引用
33 /*!
34 * @return long - 当前引用计数
35 */
36 STDMETHOD_(long, AddRef)(THIS) PURE;
37
38 //! 释放引用
39 /*!
40 * @return long - 当前引用计数
41 */
42 STDMETHOD_(long, Release)(THIS) PURE;
43
44 //! 释放对象
45 /*!
46 * @return void
47 */
48 STDMETHOD_(void, OnFinalRelease)(THIS) PURE;
49
50 //! 生成LOG文件名
51 /*!
52 * @param pszFileName - 输出文件名缓冲区
53 * @param nLen - 缓冲区长度
54 * @param pszLogName - 日志名称
55 * @param pid - 进程ID
56 * @param curFileIndex - 当前文件索引
57 * @return BOOL - 成功返回TRUE,失败返回FALSE
58 */
59 STDMETHOD_(BOOL, buildOutputFile)
60 (CTHIS_ char *pszFileName, int nLen, const char *pszLogName, unsigned long pid, int curFileIndex) SCONST PURE;
61};
62
63//! log4z class
64#undef INTERFACE
65#define INTERFACE ILogMgr
66DECLARE_INTERFACE_(ILogMgr, IObjRef)
67{
68 //! 添加引用
69 /*!
70 * @return long - 当前引用计数
71 */
72 STDMETHOD_(long, AddRef)(THIS) PURE;
73
74 //! 释放引用
75 /*!
76 * @return long - 当前引用计数
77 */
78 STDMETHOD_(long, Release)(THIS) PURE;
79
80 //! 释放对象
81 /*!
82 * @return void
83 */
84 STDMETHOD_(void, OnFinalRelease)(THIS) PURE;
85
86 //! 配置或覆盖配置
87 /*!
88 * @param configPath - 配置文件路径
89 * @return BOOL - 成功返回TRUE,失败返回FALSE
90 */
91 STDMETHOD_(BOOL, config)(THIS_ const char *configPath) PURE;
92
93 //! 从字符串配置
94 /*!
95 * @param configContent - 配置内容字符串
96 * @return BOOL - 成功返回TRUE,失败返回FALSE
97 */
98 STDMETHOD_(BOOL, configFromString)(THIS_ const char *configContent) PURE;
99
100 //! 启动日志线程
101 /*!
102 * @return BOOL - 成功返回TRUE,失败返回FALSE
103 */
104 STDMETHOD_(BOOL, start)(THIS) PURE;
105
106 //! 停止日志线程
107 /*!
108 * @return BOOL - 成功返回TRUE,失败返回FALSE
109 */
110 STDMETHOD_(BOOL, stop)(THIS) PURE;
111
112 //! 预检查日志过滤器
113 /*!
114 * @param level - 日志级别
115 * @return BOOL - 过滤通过返回TRUE,过滤失败返回FALSE
116 */
117 STDMETHOD_(BOOL, prePushLog)(THIS_ int level) PURE;
118
119 //! 推送日志,线程安全
120 /*!
121 * @param level - 日志级别
122 * @param filter - 日志过滤器
123 * @param log - 日志内容
124 * @param file - 文件名
125 * @param line - 行号
126 * @param func - 函数名
127 * @param pRetAddr - 返回地址
128 * @return BOOL - 成功返回TRUE,失败返回FALSE
129 */
130 STDMETHOD_(BOOL, pushLog)
131 (THIS_ int level, const char *filter, const char *log, const char *file, int line, const char *func, const void *pRetAddr) PURE;
132
133 //! 检查日志器是否启用
134 /*!
135 * @return BOOL - 启用返回TRUE,未启用返回FALSE
136 */
137 STDMETHOD_(BOOL, isLoggerEnable)(CTHIS) SCONST PURE;
138
139 //! 启用或禁用日志器
140 /*!
141 * @param enable - 启用标志
142 * @return BOOL - 成功返回TRUE,失败返回FALSE
143 */
144 STDMETHOD_(BOOL, enableLogger)(THIS_ BOOL enable) PURE;
145
146 //! 设置日志器名称
147 /*!
148 * @param name_u8 - 日志器名称
149 * @return BOOL - 成功返回TRUE,失败返回FALSE
150 */
151 STDMETHOD_(BOOL, setLoggerName)(THIS_ const char *name_u8) PURE;
152
153 //! 设置日志器路径
154 /*!
155 * @param path_u8 - 日志器路径
156 * @return BOOL - 成功返回TRUE,失败返回FALSE
157 */
158 STDMETHOD_(BOOL, setLoggerPath)(THIS_ const char *path_u8) PURE;
159
160 //! 设置日志级别
161 /*!
162 * @param nLevel - 日志级别
163 * @return BOOL - 成功返回TRUE,失败返回FALSE
164 */
165 STDMETHOD_(BOOL, setLoggerLevel)(THIS_ int nLevel) PURE;
166
167 //! 启用或禁用文件行号
168 /*!
169 * @param enable - 启用标志
170 * @return BOOL - 成功返回TRUE,失败返回FALSE
171 */
172 STDMETHOD_(BOOL, setLoggerFileLine)(THIS_ BOOL enable) PURE;
173
174 //! 启用或禁用日志显示
175 /*!
176 * @param enable - 启用标志
177 * @return BOOL - 成功返回TRUE,失败返回FALSE
178 */
179 STDMETHOD_(BOOL, setLoggerDisplay)(THIS_ BOOL enable) PURE;
180
181 //! 启用或禁用日志输出到文件
182 /*!
183 * @param enable - 启用标志
184 * @return BOOL - 成功返回TRUE,失败返回FALSE
185 */
186 STDMETHOD_(BOOL, setLoggerOutFile)(THIS_ BOOL enable) PURE;
187
188 //! 设置日志文件大小限制
189 /*!
190 * @param limitsize - 文件大小限制
191 * @return BOOL - 成功返回TRUE,失败返回FALSE
192 */
193 STDMETHOD_(BOOL, setLoggerLimitsize)(THIS_ unsigned int limitsize) PURE;
194
195 //! 设置日志输出到文件的规则
196 /*!
197 * @param pOutputFileBuilder - 输出文件生成器
198 * @return void
199 */
200 STDMETHOD_(void, setOutputFileBuilder)(THIS_ IOutputFileBuilder * pOutputFileBuilder) PURE;
201};
202
203SNSEND
204#endif // __SLOG_I__H__
Interface for reference counting.
Definition obj-ref-i.h:19