Skip to content

Commit ad602f5

Browse files
committed
[component][ulog] Add filter get API.
1 parent 2fe79fa commit ad602f5

File tree

3 files changed

+62
-16
lines changed

3 files changed

+62
-16
lines changed

components/utilities/ulog/ulog.c

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,6 @@
7474
#error "the log line buffer size must more than 80"
7575
#endif
7676

77-
/* tag's level filter */
78-
struct tag_lvl_filter
79-
{
80-
char tag[ULOG_FILTER_TAG_MAX_LEN + 1];
81-
rt_uint32_t level;
82-
rt_slist_t list;
83-
};
84-
typedef struct tag_lvl_filter *tag_lvl_filter_t;
85-
8677
struct rt_ulog
8778
{
8879
rt_bool_t init_ok;
@@ -760,7 +751,7 @@ void ulog_hexdump(const char *name, rt_size_t width, rt_uint8_t *buf, rt_size_t
760751
int ulog_tag_lvl_filter_set(const char *tag, rt_uint32_t level)
761752
{
762753
rt_slist_t *node;
763-
tag_lvl_filter_t tag_lvl = NULL;
754+
ulog_tag_lvl_filter_t tag_lvl = NULL;
764755
int result = RT_EOK;
765756

766757
RT_ASSERT(level <= LOG_FILTER_LVL_ALL);
@@ -773,7 +764,7 @@ int ulog_tag_lvl_filter_set(const char *tag, rt_uint32_t level)
773764
/* find the tag in list */
774765
for (node = rt_slist_first(&ulog.filter.tag_lvl_list); node; node = rt_slist_next(node))
775766
{
776-
tag_lvl = rt_slist_entry(node, struct tag_lvl_filter, list);
767+
tag_lvl = rt_slist_entry(node, struct ulog_tag_lvl_filter, list);
777768
if (!rt_strncmp(tag_lvl->tag, tag, ULOG_FILTER_TAG_MAX_LEN))
778769
{
779770
break;
@@ -804,7 +795,7 @@ int ulog_tag_lvl_filter_set(const char *tag, rt_uint32_t level)
804795
if (level != LOG_FILTER_LVL_ALL)
805796
{
806797
/* new a tag's level filter */
807-
tag_lvl = (tag_lvl_filter_t)rt_malloc(sizeof(struct tag_lvl_filter));
798+
tag_lvl = (ulog_tag_lvl_filter_t)rt_malloc(sizeof(struct ulog_tag_lvl_filter));
808799
if (tag_lvl)
809800
{
810801
rt_memset(tag_lvl->tag, 0 , sizeof(tag_lvl->tag));
@@ -835,7 +826,7 @@ int ulog_tag_lvl_filter_set(const char *tag, rt_uint32_t level)
835826
rt_uint32_t ulog_tag_lvl_filter_get(const char *tag)
836827
{
837828
rt_slist_t *node;
838-
tag_lvl_filter_t tag_lvl = NULL;
829+
ulog_tag_lvl_filter_t tag_lvl = NULL;
839830
rt_uint32_t level = LOG_FILTER_LVL_ALL;
840831

841832
if (!ulog.init_ok)
@@ -846,7 +837,7 @@ rt_uint32_t ulog_tag_lvl_filter_get(const char *tag)
846837
/* find the tag in list */
847838
for (node = rt_slist_first(&ulog.filter.tag_lvl_list); node; node = rt_slist_next(node))
848839
{
849-
tag_lvl = rt_slist_entry(node, struct tag_lvl_filter, list);
840+
tag_lvl = rt_slist_entry(node, struct ulog_tag_lvl_filter, list);
850841
if (!rt_strncmp(tag_lvl->tag, tag, ULOG_FILTER_TAG_MAX_LEN))
851842
{
852843
level = tag_lvl->level;
@@ -859,6 +850,16 @@ rt_uint32_t ulog_tag_lvl_filter_get(const char *tag)
859850
return level;
860851
}
861852

853+
/**
854+
* get the tag's level list on filter
855+
*
856+
* @return tag's level list
857+
*/
858+
rt_slist_t *ulog_tag_lvl_list_get(void)
859+
{
860+
return &ulog.filter.tag_lvl_list;
861+
}
862+
862863
/**
863864
* set log global filter level
864865
*
@@ -873,6 +874,18 @@ void ulog_global_filter_lvl_set(rt_uint32_t level)
873874
ulog.filter.level = level;
874875
}
875876

877+
/**
878+
* get log global filter level
879+
*
880+
* @return log level: LOG_LVL_ASSERT, LOG_LVL_ERROR, LOG_LVL_WARNING, LOG_LVL_INFO, LOG_LVL_DBG
881+
* LOG_FILTER_LVL_SILENT: disable all log output, except assert level
882+
* LOG_FILTER_LVL_ALL: enable all log output
883+
*/
884+
rt_uint32_t ulog_global_filter_lvl_get(void)
885+
{
886+
return ulog.filter.level;
887+
}
888+
876889
/**
877890
* set log global filter tag
878891
*
@@ -885,6 +898,16 @@ void ulog_global_filter_tag_set(const char *tag)
885898
rt_strncpy(ulog.filter.tag, tag, ULOG_FILTER_TAG_MAX_LEN);
886899
}
887900

901+
/**
902+
* get log global filter tag
903+
*
904+
* @return tag
905+
*/
906+
const char *ulog_global_filter_tag_get(void)
907+
{
908+
return ulog.filter.tag;
909+
}
910+
888911
/**
889912
* set log global filter keyword
890913
*
@@ -897,6 +920,16 @@ void ulog_global_filter_kw_set(const char *keyword)
897920
rt_strncpy(ulog.filter.keyword, keyword, ULOG_FILTER_KW_MAX_LEN);
898921
}
899922

923+
/**
924+
* get log global filter keyword
925+
*
926+
* @return keyword
927+
*/
928+
const char *ulog_global_filter_kw_get(void)
929+
{
930+
return ulog.filter.keyword;
931+
}
932+
900933
#if defined(RT_USING_FINSH) && defined(FINSH_USING_MSH)
901934
#include <finsh.h>
902935

@@ -1198,10 +1231,10 @@ void ulog_deinit(void)
11981231
#ifdef ULOG_USING_FILTER
11991232
/* deinit tag's level filter */
12001233
{
1201-
tag_lvl_filter_t tag_lvl;
1234+
ulog_tag_lvl_filter_t tag_lvl;
12021235
for (node = rt_slist_first(&ulog.filter.tag_lvl_list); node; node = rt_slist_next(node))
12031236
{
1204-
tag_lvl = rt_slist_entry(node, struct tag_lvl_filter, list);
1237+
tag_lvl = rt_slist_entry(node, struct ulog_tag_lvl_filter, list);
12051238
rt_free(tag_lvl);
12061239
}
12071240
}

components/utilities/ulog/ulog.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,13 @@ rt_err_t ulog_backend_unregister(ulog_backend_t backend);
5858
*/
5959
int ulog_tag_lvl_filter_set(const char *tag, rt_uint32_t level);
6060
rt_uint32_t ulog_tag_lvl_filter_get(const char *tag);
61+
rt_slist_t *ulog_tag_lvl_list_get(void);
6162
void ulog_global_filter_lvl_set(rt_uint32_t level);
63+
rt_uint32_t ulog_global_filter_lvl_get(void);
6264
void ulog_global_filter_tag_set(const char *tag);
65+
const char *ulog_global_filter_tag_get(void);
6366
void ulog_global_filter_kw_set(const char *keyword);
67+
const char *ulog_global_filter_kw_get(void);
6468
#endif /* ULOG_USING_FILTER */
6569

6670
/*

components/utilities/ulog/ulog_def.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,15 @@ extern "C" {
165165

166166
#define ULOG_FRAME_MAGIC 0x10
167167

168+
/* tag's level filter */
169+
struct ulog_tag_lvl_filter
170+
{
171+
char tag[ULOG_FILTER_TAG_MAX_LEN + 1];
172+
rt_uint32_t level;
173+
rt_slist_t list;
174+
};
175+
typedef struct ulog_tag_lvl_filter *ulog_tag_lvl_filter_t;
176+
168177
struct ulog_frame
169178
{
170179
/* magic word is 0x10 ('lo') */

0 commit comments

Comments
 (0)