1、【增加】日志格式可按照级别,独立配置功能;

Signed-off-by: armink <armink.ztl@gmail.com>
pull/3/head
armink 11 years ago
parent b4b09a290a
commit 110b2f46de

File diff suppressed because it is too large Load Diff

@ -44,11 +44,11 @@
<ShowCodeCoverage>1</ShowCodeCoverage><ShowInstrProfiling>1</ShowInstrProfiling></Disassembly> <ShowCodeCoverage>1</ShowCodeCoverage><ShowInstrProfiling>1</ShowInstrProfiling></Disassembly>
<Locals><col-names><item>Location</item><item>Type</item><item>Value</item><item>Variable</item></col-names><col-widths><item>150</item><item>100</item><item>161</item><item>120</item></col-widths></Locals></Static> <Locals><col-names><item>Location</item><item>Type</item><item>Value</item><item>Variable</item></col-names><col-widths><item>150</item><item>100</item><item>293</item><item>120</item></col-widths></Locals></Static>
<Windows> <Windows>
<Wnd0> <Wnd3>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-2656-1656</Identity> <Identity>TabID-2656-1656</Identity>
@ -64,7 +64,7 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1> <SelectedTab>0</SelectedTab></Wnd3><Wnd4>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-13404-1659</Identity> <Identity>TabID-13404-1659</Identity>
@ -76,20 +76,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd1><Wnd2><Tabs><Tab><Identity>TabID-3519-9111</Identity><TabName>Locals</TabName><Factory>Locals</Factory></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd2></Windows> <SelectedTab>0</SelectedTab></Wnd4><Wnd5><Tabs><Tab><Identity>TabID-3519-9111</Identity><TabName>Locals</TabName><Factory>Locals</Factory></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5></Windows>
<Editor> <Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\app\src\app_task.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>33</YPos2><SelStart2>1105</SelStart2><SelEnd2>1105</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\app\src\app.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>25</SelStart2><SelEnd2>25</SelEnd2></Tab><ActiveTab>1</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\app\src\app_task.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>2976</SelStart2><SelEnd2>2976</SelEnd2></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\app\src\app.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>25</SelStart2><SelEnd2>25</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\..\easylogger\src\elog.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>88</YPos2><SelStart2>3351</SelStart2><SelEnd2>3351</SelEnd2></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\..\..\..\easylogger\inc\elog.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>72</YPos2><SelStart2>3784</SelStart2><SelEnd2>3784</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-03128f08><key>iaridepm.enu1</key></Toolbar-03128f08></Sizes></Row0><Row1><Sizes><Toolbar-14c76288><key>debuggergui.enu1</key></Toolbar-14c76288><Toolbar-13a3cf68><key>armjlink.enu1</key></Toolbar-13a3cf68></Sizes></Row1></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>700</Bottom><Right>262</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>157143</sizeVertCX><sizeVertCY>725957</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>700</Bottom><Right>470</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>280952</sizeVertCX><sizeVertCY>725957</sizeVertCY></Rect></Wnd2></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>206825</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-035fa940><key>iaridepm.enu1</key></Toolbar-035fa940></Sizes></Row0><Row1><Sizes><Toolbar-1363cbe8><key>debuggergui.enu1</key></Toolbar-1363cbe8><Toolbar-1363c350><key>armjlink.enu1</key></Toolbar-1363c350></Sizes></Row1></Top><Left><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>700</Bottom><Right>262</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>157143</sizeVertCX><sizeVertCY>725957</sizeVertCY></Rect></Wnd4></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>700</Bottom><Right>470</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>280952</sizeVertCX><sizeVertCY>725957</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>206825</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Project> </Project>

@ -28,7 +28,7 @@ ITMportsTermIO=0
ITMportsLogFile=0 ITMportsLogFile=0
ITMlogFile=$PROJ_DIR$\ITM.log ITMlogFile=$PROJ_DIR$\ITM.log
[DebugChecksum] [DebugChecksum]
Checksum=-655121013 Checksum=-1118035218
[Exceptions] [Exceptions]
StopOnUncaught=_ 0 StopOnUncaught=_ 0
StopOnThrow=_ 0 StopOnThrow=_ 0

@ -17,7 +17,7 @@
<Build><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1215</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build><Debug-Log><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1621</ColumnWidth1></Debug-Log><TerminalIO/></Static> <Build><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1215</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build><Debug-Log><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1621</ColumnWidth1></Debug-Log><TerminalIO/></Static>
<Windows> <Windows>
<Wnd2> <Wnd0>
<Tabs> <Tabs>
<Tab> <Tab>
<Identity>TabID-24465-26237</Identity> <Identity>TabID-24465-26237</Identity>
@ -29,20 +29,20 @@
</Tab> </Tab>
</Tabs> </Tabs>
<SelectedTab>0</SelectedTab></Wnd2><Wnd3><Tabs><Tab><Identity>TabID-28731-28409</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-15495-1620</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows> <SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-28731-28409</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-15495-1620</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1></Windows>
<Editor> <Editor>
<Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\app\src\app_task.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>162</SelStart2><SelEnd2>162</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor> <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\app\src\app_task.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>0</YPos2><SelStart2>2333</SelStart2><SelEnd2>2333</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions> <Positions>
<Top><Row0><Sizes><Toolbar-029e3e28><key>iaridepm.enu1</key></Toolbar-029e3e28></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>724</Bottom><Right>306</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>183333</sizeVertCX><sizeVertCY>750776</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>206825</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions> <Top><Row0><Sizes><Toolbar-035fa940><key>iaridepm.enu1</key></Toolbar-035fa940></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>724</Bottom><Right>306</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>183333</sizeVertCX><sizeVertCY>750776</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>206825</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>206825</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop> </Desktop>
</Workspace> </Workspace>

@ -91,10 +91,16 @@ void sys_init_thread(void* parameter){
/* EasyLogger initialization */ /* EasyLogger initialization */
if (elog_init() == ELOG_NO_ERR) { if (elog_init() == ELOG_NO_ERR) {
/* set enabled format */ /* set enabled format */
elog_set_fmt(ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_TIME /*| ELOG_FMT_P_INFO*/ | ELOG_FMT_T_INFO | ELOG_FMT_DIR elog_set_fmt(ELOG_LVL_ASSERT, ELOG_FMT_ALL & ~ELOG_FMT_P_INFO);
/*| ELOG_FMT_FUNC*/ | ELOG_FMT_LINE); elog_set_fmt(ELOG_LVL_ERROR, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_WARN, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_INFO, ELOG_FMT_LVL | ELOG_FMT_TAG | ELOG_FMT_TIME);
elog_set_fmt(ELOG_LVL_DEBUG, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_P_INFO));
elog_set_fmt(ELOG_LVL_VERBOSE, ELOG_FMT_ALL & ~(ELOG_FMT_FUNC | ELOG_FMT_P_INFO));
/* set EasyLogger assert hook */ /* set EasyLogger assert hook */
elog_assert_set_hook(elog_user_assert_hook); elog_assert_set_hook(elog_user_assert_hook);
/* start EasyLogger */
elog_start();
/* set hardware exception hook */ /* set hardware exception hook */
rt_hw_exception_install(exception_hook); rt_hw_exception_install(exception_hook);
/* set RT-Thread assert hook */ /* set RT-Thread assert hook */

@ -38,12 +38,15 @@ extern "C" {
#endif #endif
/* output log's level */ /* output log's level */
#define ELOG_LVL_ASSERT 0 enum {
#define ELOG_LVL_ERROR 1 ELOG_LVL_ASSERT = 0,
#define ELOG_LVL_WARN 2 ELOG_LVL_ERROR,
#define ELOG_LVL_INFO 3 ELOG_LVL_WARN,
#define ELOG_LVL_DEBUG 4 ELOG_LVL_INFO,
#define ELOG_LVL_VERBOSE 5 ELOG_LVL_DEBUG,
ELOG_LVL_VERBOSE,
ELOG_LVL_TOTAL_NUM,
};
/* setting static output log level. default is verbose */ /* setting static output log level. default is verbose */
#define ELOG_OUTPUT_LVL ELOG_LVL_VERBOSE #define ELOG_OUTPUT_LVL ELOG_LVL_VERBOSE
/* enable log output. default open this macro */ /* enable log output. default open this macro */
@ -61,7 +64,7 @@ extern "C" {
/* output newline sign */ /* output newline sign */
#define ELOG_NEWLINE_SIGN "\r\n" #define ELOG_NEWLINE_SIGN "\r\n"
/* EasyLogger software version number */ /* EasyLogger software version number */
#define ELOG_SW_VERSION "0.06.27" #define ELOG_SW_VERSION "0.07.25"
/* EasyLogger assert for developer. */ /* EasyLogger assert for developer. */
#define ELOG_ASSERT(EXPR) \ #define ELOG_ASSERT(EXPR) \
@ -87,6 +90,10 @@ typedef enum {
ELOG_FMT_LINE = 1 << 7, /**< line number */ ELOG_FMT_LINE = 1 << 7, /**< line number */
} ElogFmtIndex; } ElogFmtIndex;
/* macro definition for all formats */
#define ELOG_FMT_ALL (ELOG_FMT_LVL|ELOG_FMT_TAG|ELOG_FMT_TIME|ELOG_FMT_P_INFO|ELOG_FMT_T_INFO| \
ELOG_FMT_DIR|ELOG_FMT_FUNC|ELOG_FMT_LINE)
/* output log's filter */ /* output log's filter */
typedef struct { typedef struct {
uint8_t level; uint8_t level;
@ -97,7 +104,7 @@ typedef struct {
/* easy logger */ /* easy logger */
typedef struct { typedef struct {
ElogFilter filter; ElogFilter filter;
size_t enabled_fmt_set; size_t enabled_fmt_set[ELOG_LVL_TOTAL_NUM];
bool output_enabled; bool output_enabled;
}EasyLogger, *EasyLogger_t; }EasyLogger, *EasyLogger_t;
@ -111,7 +118,7 @@ ElogErrCode elog_init(void);
void elog_start(void); void elog_start(void);
void elog_set_output_enabled(bool enabled); void elog_set_output_enabled(bool enabled);
bool elog_get_output_enabled(void); bool elog_get_output_enabled(void);
void elog_set_fmt(size_t set); void elog_set_fmt(uint8_t level, size_t set);
void elog_set_filter(uint8_t level, const char *tag, const char *keyword); void elog_set_filter(uint8_t level, const char *tag, const char *keyword);
void elog_set_filter_lvl(uint8_t level); void elog_set_filter_lvl(uint8_t level);
void elog_set_filter_tag(const char *tag); void elog_set_filter_tag(const char *tag);

@ -54,7 +54,7 @@ static bool output_is_locked_before_enable = false;
static bool output_is_locked_before_disable = false; static bool output_is_locked_before_disable = false;
static void output_lock(void); static void output_lock(void);
static void output_unlock(void); static void output_unlock(void);
static bool get_fmt_enabled(size_t set); static bool get_fmt_enabled(uint8_t level, size_t set);
/* EasyLogger assert hook */ /* EasyLogger assert hook */
void (*elog_assert_hook)(const char* expr, const char* func, size_t line); void (*elog_assert_hook)(const char* expr, const char* func, size_t line);
@ -108,10 +108,13 @@ bool elog_get_output_enabled(void) {
/** /**
* set log output format. only enable or disable * set log output format. only enable or disable
* *
* @param level level
* @param set format set * @param set format set
*/ */
void elog_set_fmt(size_t set) { void elog_set_fmt(uint8_t level, size_t set) {
elog.enabled_fmt_set = set; ELOG_ASSERT(level <= ELOG_LVL_VERBOSE);
elog.enabled_fmt_set[level] = set;
} }
/** /**
@ -238,11 +241,11 @@ void elog_output(uint8_t level, const char *tag, const char *file, const char *f
/* lock output */ /* lock output */
output_lock(); output_lock();
/* package level info */ /* package level info */
if (get_fmt_enabled(ELOG_FMT_LVL)) { if (get_fmt_enabled(level, ELOG_FMT_LVL)) {
log_len += elog_strcpy(log_len, log_buf + log_len, level_output_info[level]); log_len += elog_strcpy(log_len, log_buf + log_len, level_output_info[level]);
} }
/* package tag info */ /* package tag info */
if (get_fmt_enabled(ELOG_FMT_TAG)) { if (get_fmt_enabled(level, ELOG_FMT_TAG)) {
log_len += elog_strcpy(log_len, log_buf + log_len, tag); log_len += elog_strcpy(log_len, log_buf + log_len, tag);
/* if the tag length is less than 50% ELOG_FILTER_TAG_MAX_LEN, then fill space */ /* if the tag length is less than 50% ELOG_FILTER_TAG_MAX_LEN, then fill space */
if (tag_len <= ELOG_FILTER_TAG_MAX_LEN / 2) { if (tag_len <= ELOG_FILTER_TAG_MAX_LEN / 2) {
@ -252,51 +255,49 @@ void elog_output(uint8_t level, const char *tag, const char *file, const char *f
log_len += elog_strcpy(log_len, log_buf + log_len, " "); log_len += elog_strcpy(log_len, log_buf + log_len, " ");
} }
/* package time, process and thread info */ /* package time, process and thread info */
if (get_fmt_enabled(ELOG_FMT_TIME) || get_fmt_enabled(ELOG_FMT_P_INFO) if (get_fmt_enabled(level, ELOG_FMT_TIME | ELOG_FMT_P_INFO | ELOG_FMT_T_INFO)) {
|| get_fmt_enabled(ELOG_FMT_T_INFO)) {
log_len += elog_strcpy(log_len, log_buf + log_len, "["); log_len += elog_strcpy(log_len, log_buf + log_len, "[");
/* package time info */ /* package time info */
if (get_fmt_enabled(ELOG_FMT_TIME)) { if (get_fmt_enabled(level, ELOG_FMT_TIME)) {
log_len += elog_strcpy(log_len, log_buf + log_len, elog_port_get_time()); log_len += elog_strcpy(log_len, log_buf + log_len, elog_port_get_time());
if (get_fmt_enabled(ELOG_FMT_P_INFO) || get_fmt_enabled(ELOG_FMT_T_INFO)) { if (get_fmt_enabled(level, ELOG_FMT_P_INFO | ELOG_FMT_T_INFO)) {
log_len += elog_strcpy(log_len, log_buf + log_len, " "); log_len += elog_strcpy(log_len, log_buf + log_len, " ");
} }
} }
/* package process info */ /* package process info */
if (get_fmt_enabled(ELOG_FMT_P_INFO)) { if (get_fmt_enabled(level, ELOG_FMT_P_INFO)) {
log_len += elog_strcpy(log_len, log_buf + log_len, elog_port_get_p_info()); log_len += elog_strcpy(log_len, log_buf + log_len, elog_port_get_p_info());
if (get_fmt_enabled(ELOG_FMT_T_INFO)) { if (get_fmt_enabled(level, ELOG_FMT_T_INFO)) {
log_len += elog_strcpy(log_len, log_buf + log_len, " "); log_len += elog_strcpy(log_len, log_buf + log_len, " ");
} }
} }
/* package thread info */ /* package thread info */
if (get_fmt_enabled(ELOG_FMT_T_INFO)) { if (get_fmt_enabled(level, ELOG_FMT_T_INFO)) {
log_len += elog_strcpy(log_len, log_buf + log_len, elog_port_get_t_info()); log_len += elog_strcpy(log_len, log_buf + log_len, elog_port_get_t_info());
} }
log_len += elog_strcpy(log_len, log_buf + log_len, "] "); log_len += elog_strcpy(log_len, log_buf + log_len, "] ");
} }
/* package file directory and name, function name and line number info */ /* package file directory and name, function name and line number info */
if (get_fmt_enabled(ELOG_FMT_DIR) || get_fmt_enabled(ELOG_FMT_FUNC) if (get_fmt_enabled(level, ELOG_FMT_DIR | ELOG_FMT_FUNC | ELOG_FMT_LINE)) {
|| get_fmt_enabled(ELOG_FMT_LINE)) {
log_len += elog_strcpy(log_len, log_buf + log_len, "("); log_len += elog_strcpy(log_len, log_buf + log_len, "(");
/* package time info */ /* package time info */
if (get_fmt_enabled(ELOG_FMT_DIR)) { if (get_fmt_enabled(level, ELOG_FMT_DIR)) {
log_len += elog_strcpy(log_len, log_buf + log_len, file); log_len += elog_strcpy(log_len, log_buf + log_len, file);
if (get_fmt_enabled(ELOG_FMT_FUNC)) { if (get_fmt_enabled(level, ELOG_FMT_FUNC)) {
log_len += elog_strcpy(log_len, log_buf + log_len, " "); log_len += elog_strcpy(log_len, log_buf + log_len, " ");
} else if (get_fmt_enabled(ELOG_FMT_LINE)) { } else if (get_fmt_enabled(level, ELOG_FMT_LINE)) {
log_len += elog_strcpy(log_len, log_buf + log_len, ":"); log_len += elog_strcpy(log_len, log_buf + log_len, ":");
} }
} }
/* package process info */ /* package process info */
if (get_fmt_enabled(ELOG_FMT_FUNC)) { if (get_fmt_enabled(level, ELOG_FMT_FUNC)) {
log_len += elog_strcpy(log_len, log_buf + log_len, func); log_len += elog_strcpy(log_len, log_buf + log_len, func);
if (get_fmt_enabled(ELOG_FMT_LINE)) { if (get_fmt_enabled(level, ELOG_FMT_LINE)) {
log_len += elog_strcpy(log_len, log_buf + log_len, ":"); log_len += elog_strcpy(log_len, log_buf + log_len, ":");
} }
} }
/* package thread info */ /* package thread info */
if (get_fmt_enabled(ELOG_FMT_LINE)) { if (get_fmt_enabled(level, ELOG_FMT_LINE)) {
//TODO snprintf资源占用可能较高待优化 //TODO snprintf资源占用可能较高待优化
snprintf(line_num, ELOG_LINE_NUM_MAX_LEN, "%ld", line); snprintf(line_num, ELOG_LINE_NUM_MAX_LEN, "%ld", line);
log_len += elog_strcpy(log_len, log_buf + log_len, line_num); log_len += elog_strcpy(log_len, log_buf + log_len, line_num);
@ -342,12 +343,15 @@ void elog_output(uint8_t level, const char *tag, const char *file, const char *f
/** /**
* get format enabled * get format enabled
* *
* @param level level
* @param set format set * @param set format set
* *
* @return enable or disable * @return enable or disable
*/ */
static bool get_fmt_enabled(size_t set) { static bool get_fmt_enabled(uint8_t level, size_t set) {
if (elog.enabled_fmt_set & set) { ELOG_ASSERT(level <= ELOG_LVL_VERBOSE);
if (elog.enabled_fmt_set[level] & set) {
return true; return true;
} else { } else {
return false; return false;

Loading…
Cancel
Save