1e41f4b71Sopenharmony_ci# HiLog Development<a name="EN-US_TOPIC_0000001185655870"></a> 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci## Overview<a name="section8154107175019"></a> 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ciHiLog is the log system of OpenHarmony that provides logging for the system framework, services, and applications to record information on user operations and system running status. 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ciThis development guide is applicable to standard-system devices \(reference memory ≥ 128 MB\). 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## Available APIs<a name="section6748124155012"></a> 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci**Table 1** List of C++ and C APIs 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci<a name="table94501354193619"></a> 14e41f4b71Sopenharmony_ci<table><thead align="left"><tr id="row954285483614"><th class="cellrowborder" valign="top" width="18.258174182581744%" id="mcps1.2.4.1.1"><p id="p16542254203611"><a name="p16542254203611"></a><a name="p16542254203611"></a><strong id="b17542185414366"><a name="b17542185414366"></a><a name="b17542185414366"></a>C++</strong></p> 15e41f4b71Sopenharmony_ci</th> 16e41f4b71Sopenharmony_ci<th class="cellrowborder" valign="top" width="43.39566043395661%" id="mcps1.2.4.1.2"> </th> 17e41f4b71Sopenharmony_ci<th class="cellrowborder" valign="top" width="38.34616538346165%" id="mcps1.2.4.1.3"><p id="p185431554163619"><a name="p185431554163619"></a><a name="p185431554163619"></a><strong id="b175431054123617"><a name="b175431054123617"></a><a name="b175431054123617"></a>C</strong></p> 18e41f4b71Sopenharmony_ci</th> 19e41f4b71Sopenharmony_ci</tr> 20e41f4b71Sopenharmony_ci</thead> 21e41f4b71Sopenharmony_ci<tbody><tr id="row954305418361"><td class="cellrowborder" valign="top" width="18.258174182581744%" headers="mcps1.2.4.1.1 "><p id="p3543754183618"><a name="p3543754183618"></a><a name="p3543754183618"></a><strong id="b2050619101839"><a name="b2050619101839"></a><a name="b2050619101839"></a>Class</strong></p> 22e41f4b71Sopenharmony_ci</td> 23e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="43.39566043395661%" headers="mcps1.2.4.1.2 "><p id="p10544105453610"><a name="p10544105453610"></a><a name="p10544105453610"></a><strong id="b185619133317"><a name="b185619133317"></a><a name="b185619133317"></a>API</strong></p> 24e41f4b71Sopenharmony_ci</td> 25e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="38.34616538346165%" headers="mcps1.2.4.1.3 "><p id="p17969916192614"><a name="p17969916192614"></a><a name="p17969916192614"></a><strong id="b1316016214312"><a name="b1316016214312"></a><a name="b1316016214312"></a>API/Macro</strong></p> 26e41f4b71Sopenharmony_ci</td> 27e41f4b71Sopenharmony_ci</tr> 28e41f4b71Sopenharmony_ci<tr id="row8544115410361"><td class="cellrowborder" rowspan="7" valign="top" width="18.258174182581744%" headers="mcps1.2.4.1.1 "><p id="p16544154183615"><a name="p16544154183615"></a><a name="p16544154183615"></a>HiLog</p> 29e41f4b71Sopenharmony_ci<p id="p956013011212"><a name="p956013011212"></a><a name="p956013011212"></a></p> 30e41f4b71Sopenharmony_ci<p id="p1356013309127"><a name="p1356013309127"></a><a name="p1356013309127"></a></p> 31e41f4b71Sopenharmony_ci<p id="p756011303129"><a name="p756011303129"></a><a name="p756011303129"></a></p> 32e41f4b71Sopenharmony_ci<p id="p135601330191211"><a name="p135601330191211"></a><a name="p135601330191211"></a></p> 33e41f4b71Sopenharmony_ci<p id="p756183091215"><a name="p756183091215"></a><a name="p756183091215"></a></p> 34e41f4b71Sopenharmony_ci<p id="p1956115302128"><a name="p1956115302128"></a><a name="p1956115302128"></a></p> 35e41f4b71Sopenharmony_ci</td> 36e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="43.39566043395661%" headers="mcps1.2.4.1.2 "><p id="p1326662513016"><a name="p1326662513016"></a><a name="p1326662513016"></a>int Debug(const HiLogLabel &label, const char *fmt, ...)</p> 37e41f4b71Sopenharmony_ci</td> 38e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="38.34616538346165%" headers="mcps1.2.4.1.3 "><p id="p18697644105619"><a name="p18697644105619"></a><a name="p18697644105619"></a>HILOG_DEBUG(type, ...)</p> 39e41f4b71Sopenharmony_ci</td> 40e41f4b71Sopenharmony_ci</tr> 41e41f4b71Sopenharmony_ci<tr id="row754495418366"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p86951544155610"><a name="p86951544155610"></a><a name="p86951544155610"></a>int Info(const HiLogLabel &label, const char *fmt, ...)</p> 42e41f4b71Sopenharmony_ci</td> 43e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p96931344145615"><a name="p96931344145615"></a><a name="p96931344145615"></a>HILOG_INFO(type, ...)</p> 44e41f4b71Sopenharmony_ci</td> 45e41f4b71Sopenharmony_ci</tr> 46e41f4b71Sopenharmony_ci<tr id="row95441954113614"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1769224485619"><a name="p1769224485619"></a><a name="p1769224485619"></a>int Warn(const HiLogLabel &label, const char *fmt, ...)</p> 47e41f4b71Sopenharmony_ci</td> 48e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1969194465613"><a name="p1969194465613"></a><a name="p1969194465613"></a>HILOG_WARN(type, ...)</p> 49e41f4b71Sopenharmony_ci</td> 50e41f4b71Sopenharmony_ci</tr> 51e41f4b71Sopenharmony_ci<tr id="row45448547369"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p4748102365615"><a name="p4748102365615"></a><a name="p4748102365615"></a>int Error(const HiLogLabel &label, const char *fmt, ...)</p> 52e41f4b71Sopenharmony_ci</td> 53e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p15747142375613"><a name="p15747142375613"></a><a name="p15747142375613"></a>HILOG_ERROR(type, ...)</p> 54e41f4b71Sopenharmony_ci</td> 55e41f4b71Sopenharmony_ci</tr> 56e41f4b71Sopenharmony_ci<tr id="row12545125453610"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p5745132318560"><a name="p5745132318560"></a><a name="p5745132318560"></a>int Fatal(const HiLogLabel &label, const char *fmt, ...)</p> 57e41f4b71Sopenharmony_ci</td> 58e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p107441123175615"><a name="p107441123175615"></a><a name="p107441123175615"></a>HILOG_FATAL(type, ...)</p> 59e41f4b71Sopenharmony_ci</td> 60e41f4b71Sopenharmony_ci</tr> 61e41f4b71Sopenharmony_ci<tr id="row1454565433611"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1574242345618"><a name="p1574242345618"></a><a name="p1574242345618"></a>NA</p> 62e41f4b71Sopenharmony_ci</td> 63e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p197416239562"><a name="p197416239562"></a><a name="p197416239562"></a>int HiLogPrint(LogType type, LogLevel level, unsigned int domain, const char *tag, const char *fmt, ...)</p> 64e41f4b71Sopenharmony_ci</td> 65e41f4b71Sopenharmony_ci</tr> 66e41f4b71Sopenharmony_ci<tr id="row165451854193617"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p64411913343"><a name="p64411913343"></a><a name="p64411913343"></a>boolean IsLoggable(unsigned int domain, const char *tag, LogLevel level)</p> 67e41f4b71Sopenharmony_ci</td> 68e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p107388238561"><a name="p107388238561"></a><a name="p107388238561"></a>bool HiLogIsLoggable(unsigned int domain, const char *tag, LogLevel level)</p> 69e41f4b71Sopenharmony_ci</td> 70e41f4b71Sopenharmony_ci</tr> 71e41f4b71Sopenharmony_ci<tr id="row154535415367"><td class="cellrowborder" valign="top" width="18.258174182581744%" headers="mcps1.2.4.1.1 "><p id="p795821952317"><a name="p795821952317"></a><a name="p795821952317"></a>HiLogLabel</p> 72e41f4b71Sopenharmony_ci</td> 73e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="43.39566043395661%" headers="mcps1.2.4.1.2 "><p id="p20464133712224"><a name="p20464133712224"></a><a name="p20464133712224"></a>struct HiLogLabel</p> 74e41f4b71Sopenharmony_ci</td> 75e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="38.34616538346165%" headers="mcps1.2.4.1.3 "><p id="p1360616314276"><a name="p1360616314276"></a><a name="p1360616314276"></a>LOG_DOMAIN</p> 76e41f4b71Sopenharmony_ci<p id="p4698145992513"><a name="p4698145992513"></a><a name="p4698145992513"></a>LOG_TAG</p> 77e41f4b71Sopenharmony_ci</td> 78e41f4b71Sopenharmony_ci</tr> 79e41f4b71Sopenharmony_ci</tbody> 80e41f4b71Sopenharmony_ci</table> 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci**Table 2** Parameters of C++ APIs 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci<a name="table19597131833715"></a> 85e41f4b71Sopenharmony_ci<table><thead align="left"><tr id="row7839141817375"><th class="cellrowborder" valign="top" width="8.27%" id="mcps1.2.4.1.1"><p id="p383919182379"><a name="p383919182379"></a><a name="p383919182379"></a><strong id="b1768458647"><a name="b1768458647"></a><a name="b1768458647"></a>Class</strong></p> 86e41f4b71Sopenharmony_ci</th> 87e41f4b71Sopenharmony_ci<th class="cellrowborder" valign="top" width="31.41%" id="mcps1.2.4.1.2"><p id="p168392018203711"><a name="p168392018203711"></a><a name="p168392018203711"></a><strong id="b278081916236"><a name="b278081916236"></a><a name="b278081916236"></a>API</strong></p> 88e41f4b71Sopenharmony_ci</th> 89e41f4b71Sopenharmony_ci<th class="cellrowborder" valign="top" width="60.31999999999999%" id="mcps1.2.4.1.3"><p id="p168391618193717"><a name="p168391618193717"></a><a name="p168391618193717"></a><strong id="b399622116235"><a name="b399622116235"></a><a name="b399622116235"></a>Description</strong></p> 90e41f4b71Sopenharmony_ci</th> 91e41f4b71Sopenharmony_ci</tr> 92e41f4b71Sopenharmony_ci</thead> 93e41f4b71Sopenharmony_ci<tbody><tr id="row383911183378"><td class="cellrowborder" rowspan="6" valign="top" width="8.27%" headers="mcps1.2.4.1.1 "><p id="p10839318133713"><a name="p10839318133713"></a><a name="p10839318133713"></a>HiLog</p> 94e41f4b71Sopenharmony_ci<p id="p58561944151216"><a name="p58561944151216"></a><a name="p58561944151216"></a></p> 95e41f4b71Sopenharmony_ci<p id="p5856744201215"><a name="p5856744201215"></a><a name="p5856744201215"></a></p> 96e41f4b71Sopenharmony_ci<p id="p1985664413120"><a name="p1985664413120"></a><a name="p1985664413120"></a></p> 97e41f4b71Sopenharmony_ci<p id="p138562442123"><a name="p138562442123"></a><a name="p138562442123"></a></p> 98e41f4b71Sopenharmony_ci<p id="p485612447125"><a name="p485612447125"></a><a name="p485612447125"></a></p> 99e41f4b71Sopenharmony_ci</td> 100e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="31.41%" headers="mcps1.2.4.1.2 "><p id="p12483951497"><a name="p12483951497"></a><a name="p12483951497"></a>int Debug(const HiLogLabel &label, const char *fmt, ...)</p> 101e41f4b71Sopenharmony_ci</td> 102e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="60.31999999999999%" headers="mcps1.2.4.1.3 "><p id="p684013182375"><a name="p684013182375"></a><a name="p684013182375"></a>Generates debug logs.</p> 103e41f4b71Sopenharmony_ci<p id="p1384081812377"><a name="p1384081812377"></a><a name="p1384081812377"></a>Input arguments:</p> 104e41f4b71Sopenharmony_ci<a name="ul169441595136"></a><a name="ul169441595136"></a><ul id="ul169441595136"><li><strong id="b19571183520407"><a name="b19571183520407"></a><a name="b19571183520407"></a>label</strong>: Identifies the log type, service domain, and tag.</li><li><strong id="b1283512366405"><a name="b1283512366405"></a><a name="b1283512366405"></a>format</strong>: Indicates the constant format, including the parameter type and privacy identifier. If the privacy identifier is not specified, a parameter is treated as a privacy parameter by default.</li><li><strong id="b095016383402"><a name="b095016383402"></a><a name="b095016383402"></a>fmt</strong>: Indicates the string describing the format variable parameter.</li></ul> 105e41f4b71Sopenharmony_ci<p id="p591585615123"><a name="p591585615123"></a><a name="p591585615123"></a>Output arguments: none</p> 106e41f4b71Sopenharmony_ci<p id="p1620144161310"><a name="p1620144161310"></a><a name="p1620144161310"></a>Return value: Returns a value greater than or equal to <strong id="b267625003111"><a name="b267625003111"></a><a name="b267625003111"></a>0</strong> if the operation is successful; returns a value less than <strong id="b525912610327"><a name="b525912610327"></a><a name="b525912610327"></a>0</strong> otherwise.</p> 107e41f4b71Sopenharmony_ci</td> 108e41f4b71Sopenharmony_ci</tr> 109e41f4b71Sopenharmony_ci<tr id="row16840101803720"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p482832616141"><a name="p482832616141"></a><a name="p482832616141"></a>int Info(const HiLogLabel &label, const char *fmt, ...)</p> 110e41f4b71Sopenharmony_ci</td> 111e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p9562039395"><a name="p9562039395"></a><a name="p9562039395"></a>Generates info logs.</p> 112e41f4b71Sopenharmony_ci<p id="p198849129150"><a name="p198849129150"></a><a name="p198849129150"></a>Arguments: See argument description of the <strong id="b672105414170"><a name="b672105414170"></a><a name="b672105414170"></a>Debug</strong> function.</p> 113e41f4b71Sopenharmony_ci</td> 114e41f4b71Sopenharmony_ci</tr> 115e41f4b71Sopenharmony_ci<tr id="row198401818193712"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p1705727151413"><a name="p1705727151413"></a><a name="p1705727151413"></a>int Warn(const HiLogLabel &label, const char *fmt, ...)</p> 116e41f4b71Sopenharmony_ci</td> 117e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p873814715151"><a name="p873814715151"></a><a name="p873814715151"></a>Generates warn logs.</p> 118e41f4b71Sopenharmony_ci<p id="p17738847151515"><a name="p17738847151515"></a><a name="p17738847151515"></a>Arguments: See argument description of the <strong id="b36421511178"><a name="b36421511178"></a><a name="b36421511178"></a>Debug</strong> function.</p> 119e41f4b71Sopenharmony_ci</td> 120e41f4b71Sopenharmony_ci</tr> 121e41f4b71Sopenharmony_ci<tr id="row118401118203714"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p55044284141"><a name="p55044284141"></a><a name="p55044284141"></a>int Error(const HiLogLabel &label, const char *fmt, ...)</p> 122e41f4b71Sopenharmony_ci</td> 123e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p1558516489153"><a name="p1558516489153"></a><a name="p1558516489153"></a>Generates error logs.</p> 124e41f4b71Sopenharmony_ci<p id="p1558534841512"><a name="p1558534841512"></a><a name="p1558534841512"></a>Arguments: See argument description of the <strong id="b752514831712"><a name="b752514831712"></a><a name="b752514831712"></a>Debug</strong> function.</p> 125e41f4b71Sopenharmony_ci</td> 126e41f4b71Sopenharmony_ci</tr> 127e41f4b71Sopenharmony_ci<tr id="row3840171813374"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p8306152914144"><a name="p8306152914144"></a><a name="p8306152914144"></a>int Fatal(const HiLogLabel &label, const char *fmt, ...)</p> 128e41f4b71Sopenharmony_ci</td> 129e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p625734912152"><a name="p625734912152"></a><a name="p625734912152"></a>Generates fatal logs.</p> 130e41f4b71Sopenharmony_ci<p id="p1125712491157"><a name="p1125712491157"></a><a name="p1125712491157"></a>Arguments: See argument description of the <strong id="b16446443111715"><a name="b16446443111715"></a><a name="b16446443111715"></a>Debug</strong> function.</p> 131e41f4b71Sopenharmony_ci</td> 132e41f4b71Sopenharmony_ci</tr> 133e41f4b71Sopenharmony_ci<tr id="row6840818193716"><td class="cellrowborder" valign="top" headers="mcps1.2.4.1.1 "><p id="p421952291617"><a name="p421952291617"></a><a name="p421952291617"></a>boolean IsLoggable(unsigned int domain, const char *tag, LogLevel level)</p> 134e41f4b71Sopenharmony_ci</td> 135e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" headers="mcps1.2.4.1.2 "><p id="p3722152951615"><a name="p3722152951615"></a><a name="p3722152951615"></a>Checks whether logs of the specified service domain, tag, and level can be printed.</p> 136e41f4b71Sopenharmony_ci<p id="p117221929201613"><a name="p117221929201613"></a><a name="p117221929201613"></a>Input arguments:</p> 137e41f4b71Sopenharmony_ci<a name="ul1372214296164"></a><a name="ul1372214296164"></a><ul id="ul1372214296164"><li><strong id="b0822517410"><a name="b0822517410"></a><a name="b0822517410"></a>domain</strong>: Indicates the service domain of logs.</li><li><strong id="b953419064117"><a name="b953419064117"></a><a name="b953419064117"></a>tag</strong>: Indicates the log tag.</li><li><strong id="b6256659194017"><a name="b6256659194017"></a><a name="b6256659194017"></a>level</strong>: Indicates the log level.</li></ul> 138e41f4b71Sopenharmony_ci<p id="p572242911167"><a name="p572242911167"></a><a name="p572242911167"></a>Output arguments: none</p> 139e41f4b71Sopenharmony_ci<p id="p6722162991617"><a name="p6722162991617"></a><a name="p6722162991617"></a>Return value: Returns <strong id="b8852118175419"><a name="b8852118175419"></a><a name="b8852118175419"></a>true</strong> if the specified logs can be printed; returns <strong id="b1019141735419"><a name="b1019141735419"></a><a name="b1019141735419"></a>false</strong> otherwise.</p> 140e41f4b71Sopenharmony_ci</td> 141e41f4b71Sopenharmony_ci</tr> 142e41f4b71Sopenharmony_ci<tr id="row15841191813371"><td class="cellrowborder" valign="top" width="8.27%" headers="mcps1.2.4.1.1 "><p id="p98771141182714"><a name="p98771141182714"></a><a name="p98771141182714"></a>HiLogLabel</p> 143e41f4b71Sopenharmony_ci</td> 144e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="31.41%" headers="mcps1.2.4.1.2 "><p id="p137234972715"><a name="p137234972715"></a><a name="p137234972715"></a>struct HiLogLabel</p> 145e41f4b71Sopenharmony_ci</td> 146e41f4b71Sopenharmony_ci<td class="cellrowborder" valign="top" width="60.31999999999999%" headers="mcps1.2.4.1.3 "><p id="p48419181372"><a name="p48419181372"></a><a name="p48419181372"></a>Initializes log tag parameters.</p> 147e41f4b71Sopenharmony_ci<p id="p335055115288"><a name="p335055115288"></a><a name="p335055115288"></a>Members:</p> 148e41f4b71Sopenharmony_ci<a name="ul1235085115287"></a><a name="ul1235085115287"></a><ul id="ul1235085115287"><li><strong id="b521813144117"><a name="b521813144117"></a><a name="b521813144117"></a>type</strong>: Indicates the log type.</li><li><strong id="b1014691044111"><a name="b1014691044111"></a><a name="b1014691044111"></a>domain</strong>: Indicates the service domain of logs.</li><li><strong id="b1843710115416"><a name="b1843710115416"></a><a name="b1843710115416"></a>tag</strong>: Indicates the log tag.</li></ul> 149e41f4b71Sopenharmony_ci</td> 150e41f4b71Sopenharmony_ci</tr> 151e41f4b71Sopenharmony_ci</tbody> 152e41f4b71Sopenharmony_ci</table> 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci## How to Develop<a name="section102728581536"></a> 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_ci### C <a name="section12916224185417"></a> 157e41f4b71Sopenharmony_ci 158e41f4b71Sopenharmony_ci1. Include the **hilog** header file in the **.c** source file. 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ci ``` 161e41f4b71Sopenharmony_ci #include "hilog/log.h" 162e41f4b71Sopenharmony_ci ``` 163e41f4b71Sopenharmony_ci 164e41f4b71Sopenharmony_ci Construct **domain** and **tag**. 165e41f4b71Sopenharmony_ci 166e41f4b71Sopenharmony_ci ``` 167e41f4b71Sopenharmony_ci #undef LOG_DOMAIN 168e41f4b71Sopenharmony_ci #undef LOG_TAG 169e41f4b71Sopenharmony_ci #define LOG_DOMAIN 0xD003200 // Indicates the service domain. The value ranges from 0xD000000 to 0xFFFFF. 170e41f4b71Sopenharmony_ci #define LOG_TAG "MY_TAG" 171e41f4b71Sopenharmony_ci ``` 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci Print logs. 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci ``` 176e41f4b71Sopenharmony_ci HILOG_INFO(LOG_CORE, "Failed to visit %{private}s, reason:%{public}d.", url, errno); 177e41f4b71Sopenharmony_ci ``` 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci2. Configure compilation information. Specifically, add the subsystem SDK dependency to **BUILD.gn**. 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci ``` 182e41f4b71Sopenharmony_ci external_deps = [ "hilog:libhilog" ] 183e41f4b71Sopenharmony_ci ``` 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci### C++ <a name="section19399185610547"></a> 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci1. Include the **hilog** header file in the **.h** class definition header file. 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci ``` 191e41f4b71Sopenharmony_ci #include "hilog/log.h" 192e41f4b71Sopenharmony_ci ``` 193e41f4b71Sopenharmony_ci 194e41f4b71Sopenharmony_ci If log printing is required for the class header file, define **LABEL** at the beginning of the class definition in the header file. 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ci ``` 197e41f4b71Sopenharmony_ci class MyClass { 198e41f4b71Sopenharmony_ci static constexpr OHOS::HiviewDFX::HiLogLabel LABEL = {LOG_CORE, 0xD003200, "MY_TAG"}; 199e41f4b71Sopenharmony_ci ... 200e41f4b71Sopenharmony_ci } 201e41f4b71Sopenharmony_ci ``` 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_ci If log printing is not required for the class definition header file, define **LABEL** in the class implementation file. 204e41f4b71Sopenharmony_ci 205e41f4b71Sopenharmony_ci ``` 206e41f4b71Sopenharmony_ci using namespace OHOS::HiviewDFX; 207e41f4b71Sopenharmony_ci static constexpr HiLogLabel LABEL = {LOG_CORE, 0xD003200, "MY_TAG"}; 208e41f4b71Sopenharmony_ci ``` 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci Print logs. 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ci ``` 213e41f4b71Sopenharmony_ci HiLog::Info(LABEL, "Failed to visit %{private}s, reason:%{public}d.", url, errno); 214e41f4b71Sopenharmony_ci ``` 215e41f4b71Sopenharmony_ci 216e41f4b71Sopenharmony_ci2. Configure compilation information. Specifically, add the subsystem SDK dependency to **BUILD.gn**. 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci ``` 219e41f4b71Sopenharmony_ci external_deps = [ "hiviewdfx:libhilog" ] 220e41f4b71Sopenharmony_ci ``` 221e41f4b71Sopenharmony_ci 222e41f4b71Sopenharmony_ci 223