716 lines
49 KiB
HTML
716 lines
49 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||
<title>Khaotic Engine Reborn: Logger Class Reference</title>
|
||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="jquery.js"></script>
|
||
<script type="text/javascript" src="dynsections.js"></script>
|
||
<script type="text/javascript" src="clipboard.js"></script>
|
||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="navtreedata.js"></script>
|
||
<script type="text/javascript" src="navtree.js"></script>
|
||
<script type="text/javascript" src="resize.js"></script>
|
||
<script type="text/javascript" src="cookie.js"></script>
|
||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||
<script type="text/javascript" src="search/search.js"></script>
|
||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||
</head>
|
||
<body>
|
||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||
<div id="titlearea">
|
||
<table cellspacing="0" cellpadding="0">
|
||
<tbody>
|
||
<tr id="projectrow">
|
||
<td id="projectalign">
|
||
<div id="projectname">Khaotic Engine Reborn
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<!-- end header part -->
|
||
<!-- Generated by Doxygen 1.12.0 -->
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||
/* @license-end */
|
||
</script>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
$(function() { codefold.init(0); });
|
||
/* @license-end */
|
||
</script>
|
||
<script type="text/javascript" src="menudata.js"></script>
|
||
<script type="text/javascript" src="menu.js"></script>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
$(function() {
|
||
initMenu('',true,false,'search.php','Search',true);
|
||
$(function() { init_search(); });
|
||
});
|
||
/* @license-end */
|
||
</script>
|
||
<div id="main-nav"></div>
|
||
</div><!-- top -->
|
||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||
<div id="nav-tree">
|
||
<div id="nav-tree-contents">
|
||
<div id="nav-sync" class="sync"></div>
|
||
</div>
|
||
</div>
|
||
<div id="splitbar" style="-moz-user-select:none;"
|
||
class="ui-resizable-handle">
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||
$(function(){initNavTree('class_logger.html',''); initResizable(true); });
|
||
/* @license-end */
|
||
</script>
|
||
<div id="doc-content">
|
||
<!-- window showing the filter options -->
|
||
<div id="MSearchSelectWindow"
|
||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||
</div>
|
||
|
||
<!-- iframe showing the search results (closed by default) -->
|
||
<div id="MSearchResultsWindow">
|
||
<div id="MSearchResults">
|
||
<div class="SRPage">
|
||
<div id="SRIndex">
|
||
<div id="SRResults"></div>
|
||
<div class="SRStatus" id="Loading">Loading...</div>
|
||
<div class="SRStatus" id="Searching">Searching...</div>
|
||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="header">
|
||
<div class="summary">
|
||
<a href="#nested-classes">Classes</a> |
|
||
<a href="#pub-types">Public Types</a> |
|
||
<a href="#pub-methods">Public Member Functions</a> |
|
||
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
||
<a href="#pub-attribs">Public Attributes</a> |
|
||
<a href="#pub-static-attribs">Static Public Attributes</a> |
|
||
<a href="class_logger-members.html">List of all members</a> </div>
|
||
<div class="headertitle"><div class="title">Logger Class Reference</div></div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
<table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
||
Classes</h2></td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_logger_1_1_log_entry.html">LogEntry</a></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_logger_1_1_log_level_info.html">LogLevelInfo</a></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
|
||
Public Types</h2></td></tr>
|
||
<tr class="memitem:ac744681e23720966b5f430ec2060da36" id="r_ac744681e23720966b5f430ec2060da36"><td class="memItemLeft" align="right" valign="top">enum class  </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac744681e23720966b5f430ec2060da36">LogLevel</a> { <br />
|
||
  <b>Info</b>
|
||
, <b>Warning</b>
|
||
, <b>Error</b>
|
||
, <b>Shutdown</b>
|
||
, <br />
|
||
  <b>Initialize</b>
|
||
, <b>Update</b>
|
||
, <b>Render</b>
|
||
, <b>Input</b>
|
||
, <br />
|
||
  <b>Physics</b>
|
||
, <b>Audio</b>
|
||
, <b>Network</b>
|
||
, <b>Scripting</b>
|
||
, <br />
|
||
  <b>AI</b>
|
||
, <b>Resource</b>
|
||
, <b>Memory</b>
|
||
, <b>Debug</b>
|
||
, <br />
|
||
  <b>Count</b>
|
||
<br />
|
||
}</td></tr>
|
||
<tr class="separator:ac744681e23720966b5f430ec2060da36"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
||
Public Member Functions</h2></td></tr>
|
||
<tr class="memitem:a0d21ab21689125fbb5e91584e4f37baa" id="r_a0d21ab21689125fbb5e91584e4f37baa"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a0d21ab21689125fbb5e91584e4f37baa">Logger</a> (<a class="el" href="class_logger.html">Logger</a> const &)=delete</td></tr>
|
||
<tr class="separator:a0d21ab21689125fbb5e91584e4f37baa"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ae14ecca1071f841760f40b5a1398580c" id="r_ae14ecca1071f841760f40b5a1398580c"><td class="memItemLeft" align="right" valign="top"><a id="ae14ecca1071f841760f40b5a1398580c" name="ae14ecca1071f841760f40b5a1398580c"></a>
|
||
void </td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="class_logger.html">Logger</a> const &)=delete</td></tr>
|
||
<tr class="separator:ae14ecca1071f841760f40b5a1398580c"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:abc41bfb031d896170c7675fa96a6b30c" id="r_abc41bfb031d896170c7675fa96a6b30c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#abc41bfb031d896170c7675fa96a6b30c">Logger</a> ()</td></tr>
|
||
<tr class="separator:abc41bfb031d896170c7675fa96a6b30c"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a94f47ba0ef38ea7bcf1056f64d2645e4" id="r_a94f47ba0ef38ea7bcf1056f64d2645e4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a> (const std::string &message, const std::string &fileName, int lineNumber, <a class="el" href="#ac744681e23720966b5f430ec2060da36">LogLevel</a> level=LogLevel::Info)</td></tr>
|
||
<tr class="separator:a94f47ba0ef38ea7bcf1056f64d2645e4"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac9b431db882705fe2f33687938874676" id="r_ac9b431db882705fe2f33687938874676"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ac9b431db882705fe2f33687938874676">Log</a> (const std::string &message, <a class="el" href="#ac744681e23720966b5f430ec2060da36">LogLevel</a> level)</td></tr>
|
||
<tr class="separator:ac9b431db882705fe2f33687938874676"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a0fc50378d880b648733da39e61fa51e3" id="r_a0fc50378d880b648733da39e61fa51e3"><td class="memItemLeft" align="right" valign="top">const std::deque< <a class="el" href="struct_logger_1_1_log_entry.html">LogEntry</a> > & </td><td class="memItemRight" valign="bottom"><a class="el" href="#a0fc50378d880b648733da39e61fa51e3">GetLogBuffer</a> () const</td></tr>
|
||
<tr class="separator:a0fc50378d880b648733da39e61fa51e3"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a62b3e15fa3c170e5090a846fd0e9283e" id="r_a62b3e15fa3c170e5090a846fd0e9283e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a62b3e15fa3c170e5090a846fd0e9283e">ManageLogFiles</a> (const std::string &directoryPath)</td></tr>
|
||
<tr class="separator:a62b3e15fa3c170e5090a846fd0e9283e"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
|
||
Static Public Member Functions</h2></td></tr>
|
||
<tr class="memitem:a08e3e1b899767a6d833136c9fb4f15c2" id="r_a08e3e1b899767a6d833136c9fb4f15c2"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_logger.html">Logger</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="#a08e3e1b899767a6d833136c9fb4f15c2">Get</a> ()</td></tr>
|
||
<tr class="separator:a08e3e1b899767a6d833136c9fb4f15c2"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a44f087518b3a028018146b07b2bc8e3b" id="r_a44f087518b3a028018146b07b2bc8e3b"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="struct_logger_1_1_log_level_info.html">LogLevelInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a44f087518b3a028018146b07b2bc8e3b">GetLogLevelInfo</a> (<a class="el" href="#ac744681e23720966b5f430ec2060da36">LogLevel</a> level)</td></tr>
|
||
<tr class="separator:a44f087518b3a028018146b07b2bc8e3b"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
|
||
Public Attributes</h2></td></tr>
|
||
<tr class="memitem:acf4389b1b0b850181d3674f3527fc1cd" id="r_acf4389b1b0b850181d3674f3527fc1cd"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#acf4389b1b0b850181d3674f3527fc1cd">m_disabledLogLevels</a> [LogLevelCount]</td></tr>
|
||
<tr class="separator:acf4389b1b0b850181d3674f3527fc1cd"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a72080e328dfb167d4ba1162c2f82811f" id="r_a72080e328dfb167d4ba1162c2f82811f"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="#a72080e328dfb167d4ba1162c2f82811f">m_logFilePath</a></td></tr>
|
||
<tr class="separator:a72080e328dfb167d4ba1162c2f82811f"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
|
||
Static Public Attributes</h2></td></tr>
|
||
<tr class="memitem:a03b2af65e61167f66d3c68f904206206" id="r_a03b2af65e61167f66d3c68f904206206"><td class="memItemLeft" align="right" valign="top">static constexpr int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a03b2af65e61167f66d3c68f904206206">LogLevelCount</a> = static_cast<int>(LogLevel::Count)</td></tr>
|
||
<tr class="separator:a03b2af65e61167f66d3c68f904206206"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table>
|
||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||
<div class="textblock">
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00013">13</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
|
||
<a id="ac744681e23720966b5f430ec2060da36" name="ac744681e23720966b5f430ec2060da36"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac744681e23720966b5f430ec2060da36">◆ </a></span>LogLevel</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">enum class <a class="el" href="#ac744681e23720966b5f430ec2060da36">Logger::LogLevel</a></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Enum class representing different log levels. Each log level has a corresponding color for display purposes. The last entry, Count, is used to determine the number of log levels. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00037">37</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 38</span> {</div>
|
||
<div class="line"><span class="lineno"> 39</span> Info,</div>
|
||
<div class="line"><span class="lineno"> 40</span> Warning,</div>
|
||
<div class="line"><span class="lineno"> 41</span> Error,</div>
|
||
<div class="line"><span class="lineno"> 42</span> Shutdown,</div>
|
||
<div class="line"><span class="lineno"> 43</span> Initialize,</div>
|
||
<div class="line"><span class="lineno"> 44</span> Update,</div>
|
||
<div class="line"><span class="lineno"> 45</span> Render,</div>
|
||
<div class="line"><span class="lineno"> 46</span> Input,</div>
|
||
<div class="line"><span class="lineno"> 47</span> Physics,</div>
|
||
<div class="line"><span class="lineno"> 48</span> Audio,</div>
|
||
<div class="line"><span class="lineno"> 49</span> Network,</div>
|
||
<div class="line"><span class="lineno"> 50</span> Scripting,</div>
|
||
<div class="line"><span class="lineno"> 51</span> AI,</div>
|
||
<div class="line"><span class="lineno"> 52</span> Resource,</div>
|
||
<div class="line"><span class="lineno"> 53</span> Memory,</div>
|
||
<div class="line"><span class="lineno"> 54</span> Debug,</div>
|
||
<div class="line"><span class="lineno"> 55</span> Count <span class="comment">// Do not use this, it's just to get the number of log levels it must at the end</span></div>
|
||
<div class="line"><span class="lineno"> 56</span> };</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||
<a id="a0d21ab21689125fbb5e91584e4f37baa" name="a0d21ab21689125fbb5e91584e4f37baa"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a0d21ab21689125fbb5e91584e4f37baa">◆ </a></span>Logger() <span class="overload">[1/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">Logger::Logger </td>
|
||
<td>(</td>
|
||
<td class="paramtype"><a class="el" href="class_logger.html">Logger</a> const &</td> <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Delete the copy constructor and assignment operator to prevent copying. </p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="abc41bfb031d896170c7675fa96a6b30c" name="abc41bfb031d896170c7675fa96a6b30c"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#abc41bfb031d896170c7675fa96a6b30c">◆ </a></span>Logger() <span class="overload">[2/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">Logger::Logger </td>
|
||
<td>(</td>
|
||
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Constructor for the <a class="el" href="class_logger.html">Logger</a> class. Initializes the logger, sets up the log file path, and manages log files. </p>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00116">116</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 117</span> {</div>
|
||
<div class="line"><span class="lineno"> 118</span> <span class="keywordtype">char</span>* appdata = <span class="keyword">nullptr</span>;</div>
|
||
<div class="line"><span class="lineno"> 119</span> <span class="keywordtype">size_t</span> len;</div>
|
||
<div class="line"><span class="lineno"> 120</span> _dupenv_s(&appdata, &len, <span class="stringliteral">"APPDATA"</span>);</div>
|
||
<div class="line"><span class="lineno"> 121</span> <span class="keywordflow">if</span> (appdata == <span class="keyword">nullptr</span>)</div>
|
||
<div class="line"><span class="lineno"> 122</span> {</div>
|
||
<div class="line"><span class="lineno"> 123</span> m_appdataPath = <span class="stringliteral">"log.log"</span>;</div>
|
||
<div class="line"><span class="lineno"> 124</span> }</div>
|
||
<div class="line"><span class="lineno"> 125</span> <span class="keywordflow">else</span></div>
|
||
<div class="line"><span class="lineno"> 126</span> {</div>
|
||
<div class="line"><span class="lineno"> 127</span> m_appdataPath = appdata;</div>
|
||
<div class="line"><span class="lineno"> 128</span> }</div>
|
||
<div class="line"><span class="lineno"> 129</span> free(appdata);</div>
|
||
<div class="line"><span class="lineno"> 130</span> std::string directoryPath = m_appdataPath + <span class="stringliteral">"\\Khaotic Engine"</span>;</div>
|
||
<div class="line"><span class="lineno"> 131</span> CreateDirectoryA(directoryPath.c_str(), NULL);</div>
|
||
<div class="line"><span class="lineno"> 132</span> </div>
|
||
<div class="line"><span class="lineno"> 133</span> <a class="code hl_function" href="#a62b3e15fa3c170e5090a846fd0e9283e">ManageLogFiles</a>(directoryPath);</div>
|
||
<div class="line"><span class="lineno"> 134</span> </div>
|
||
<div class="line"><span class="lineno"> 135</span> m_logFilePath = directoryPath + <span class="stringliteral">"\\"</span> + m_logFileName;</div>
|
||
<div class="line"><span class="lineno"> 136</span> </div>
|
||
<div class="line"><span class="lineno"> 137</span> <span class="comment">// Enable only the Error warning and shutdown log levels</span></div>
|
||
<div class="line"><span class="lineno"> 138</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < LogLevelCount; i++)</div>
|
||
<div class="line"><span class="lineno"> 139</span> {</div>
|
||
<div class="line"><span class="lineno"> 140</span> m_disabledLogLevels[i] = <span class="keyword">true</span>;</div>
|
||
<div class="line"><span class="lineno"> 141</span> </div>
|
||
<div class="line"><span class="lineno"> 142</span> <span class="keywordflow">if</span> (i == <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(LogLevel::Error) || i == <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(LogLevel::Warning) || i == <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(LogLevel::Shutdown))</div>
|
||
<div class="line"><span class="lineno"> 143</span> {</div>
|
||
<div class="line"><span class="lineno"> 144</span> m_disabledLogLevels[i] = <span class="keyword">false</span>;</div>
|
||
<div class="line"><span class="lineno"> 145</span> </div>
|
||
<div class="line"><span class="lineno"> 146</span> }</div>
|
||
<div class="line"><span class="lineno"> 147</span> }</div>
|
||
<div class="line"><span class="lineno"> 148</span> </div>
|
||
<div class="line"><span class="lineno"> 149</span> }</div>
|
||
<div class="ttc" id="aclass_logger_html_a62b3e15fa3c170e5090a846fd0e9283e"><div class="ttname"><a href="#a62b3e15fa3c170e5090a846fd0e9283e">Logger::ManageLogFiles</a></div><div class="ttdeci">void ManageLogFiles(const std::string &directoryPath)</div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00230">Logger.h:230</a></div></div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">Member Function Documentation</h2>
|
||
<a id="a08e3e1b899767a6d833136c9fb4f15c2" name="a08e3e1b899767a6d833136c9fb4f15c2"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a08e3e1b899767a6d833136c9fb4f15c2">◆ </a></span>Get()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">static <a class="el" href="class_logger.html">Logger</a> & Logger::Get </td>
|
||
<td>(</td>
|
||
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Get the singleton instance of the <a class="el" href="class_logger.html">Logger</a> class. </p><dl class="section return"><dt>Returns</dt><dd>A reference to the <a class="el" href="class_logger.html">Logger</a> instance. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00020">20</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 21</span> {</div>
|
||
<div class="line"><span class="lineno"> 22</span> <span class="keyword">static</span> <a class="code hl_class" href="class_logger.html">Logger</a> instance;</div>
|
||
<div class="line"><span class="lineno"> 23</span> <span class="keywordflow">return</span> instance;</div>
|
||
<div class="line"><span class="lineno"> 24</span> }</div>
|
||
<div class="ttc" id="aclass_logger_html"><div class="ttname"><a href="class_logger.html">Logger</a></div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00013">Logger.h:14</a></div></div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a0fc50378d880b648733da39e61fa51e3" name="a0fc50378d880b648733da39e61fa51e3"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a0fc50378d880b648733da39e61fa51e3">◆ </a></span>GetLogBuffer()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">const std::deque< <a class="el" href="struct_logger_1_1_log_entry.html">LogEntry</a> > & Logger::GetLogBuffer </td>
|
||
<td>(</td>
|
||
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
|
||
<td> const</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Get the loggBuffer deque. </p><dl class="section return"><dt>Returns</dt><dd>A constant reference to the logBuffer deque containing log entries. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00220">220</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 220</span>{ <span class="keywordflow">return</span> logBuffer; }</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a44f087518b3a028018146b07b2bc8e3b" name="a44f087518b3a028018146b07b2bc8e3b"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a44f087518b3a028018146b07b2bc8e3b">◆ </a></span>GetLogLevelInfo()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">static const <a class="el" href="struct_logger_1_1_log_level_info.html">LogLevelInfo</a> Logger::GetLogLevelInfo </td>
|
||
<td>(</td>
|
||
<td class="paramtype"><a class="el" href="#ac744681e23720966b5f430ec2060da36">LogLevel</a></td> <td class="paramname"><span class="paramname"><em>level</em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Get the <a class="el" href="struct_logger_1_1_log_level_info.html">LogLevelInfo</a> for a given log level. This function returns a <a class="el" href="struct_logger_1_1_log_level_info.html">LogLevelInfo</a> struct containing the name, value, and color of the log level. </p><dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">level</td><td>The log level for which to get the information. </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="struct_logger_1_1_log_level_info.html">LogLevelInfo</a> struct containing the information for the specified log level. </dd></dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00088">88</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 89</span> {</div>
|
||
<div class="line"><span class="lineno"> 90</span> <span class="keywordflow">switch</span> (level)</div>
|
||
<div class="line"><span class="lineno"> 91</span> {</div>
|
||
<div class="line"><span class="lineno"> 92</span> <span class="keywordflow">case</span> LogLevel::Info: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Info"</span>, 0, ImVec4(0.0f, 1.0f, 0.0f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 93</span> <span class="keywordflow">case</span> LogLevel::Warning: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Warning"</span>, 1, ImVec4(1.0f, 1.0f, 0.0f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 94</span> <span class="keywordflow">case</span> LogLevel::Error: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Error"</span>, 2, ImVec4(1.0f, 0.0f, 0.0f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 95</span> <span class="keywordflow">case</span> LogLevel::Shutdown: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"shutdown"</span>, 3, ImVec4(0.5f, 0.0f, 0.0f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 96</span> <span class="keywordflow">case</span> LogLevel::Initialize: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"initialize"</span>, 4, ImVec4(0.0f, 1.0f, 1.0f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 97</span> <span class="keywordflow">case</span> LogLevel::Update: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Update"</span>, 5, ImVec4(1.0f, 0.0f, 1.0f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 98</span> <span class="keywordflow">case</span> LogLevel::Render: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"render"</span>, 6, ImVec4(1.0f, 1.0f, 1.0f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 99</span> <span class="keywordflow">case</span> LogLevel::Input: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Input"</span>, 7, ImVec4(0.5f, 0.5f, 0.5f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 100</span> <span class="keywordflow">case</span> LogLevel::Physics: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"physics"</span>, 8, ImVec4(0.5f, 0.5f, 0.5f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 101</span> <span class="keywordflow">case</span> LogLevel::Audio: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Audio"</span>, 9, ImVec4(0.5f, 0.5f, 0.5f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 102</span> <span class="keywordflow">case</span> LogLevel::Network: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Network"</span>, 10, ImVec4(0.5f, 0.5f, 0.5f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 103</span> <span class="keywordflow">case</span> LogLevel::Scripting: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Scripting"</span>, 11, ImVec4(0.5f, 0.5f, 0.5f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 104</span> <span class="keywordflow">case</span> LogLevel::AI: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"AI"</span>, 12, ImVec4(0.5f, 0.5f, 0.5f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 105</span> <span class="keywordflow">case</span> LogLevel::Resource: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Resource"</span>, 13, ImVec4(0.5f, 0.5f, 0.5f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 106</span> <span class="keywordflow">case</span> LogLevel::Memory: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Memory"</span>, 14, ImVec4(0.5f, 0.5f, 0.5f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 107</span> <span class="keywordflow">case</span> LogLevel::Debug: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Debug"</span>, 15, ImVec4(0.5f, 0.5f, 0.5f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 108</span> <span class="keywordflow">default</span>: <span class="keywordflow">return</span> LogLevelInfo{ <span class="stringliteral">"Unknown"</span>, 16, ImVec4(1.0f, 1.0f, 1.0f, 1.0f) };</div>
|
||
<div class="line"><span class="lineno"> 109</span> }</div>
|
||
<div class="line"><span class="lineno"> 110</span> }</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a94f47ba0ef38ea7bcf1056f64d2645e4" name="a94f47ba0ef38ea7bcf1056f64d2645e4"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a94f47ba0ef38ea7bcf1056f64d2645e4">◆ </a></span>Log() <span class="overload">[1/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void Logger::Log </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>message</em></span>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>fileName</em></span>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>lineNumber</em></span>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype"><a class="el" href="#ac744681e23720966b5f430ec2060da36">LogLevel</a></td> <td class="paramname"><span class="paramname"><em>level</em></span><span class="paramdefsep"> = </span><span class="paramdefval">LogLevel::Info</span> )</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Write a log message to the log file and console. </p><dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">message</td><td></td></tr>
|
||
<tr><td class="paramname">fileName</td><td></td></tr>
|
||
<tr><td class="paramname">lineNumber</td><td></td></tr>
|
||
<tr><td class="paramname">level</td><td></td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00158">158</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 159</span> {</div>
|
||
<div class="line"><span class="lineno"> 160</span> </div>
|
||
<div class="line"><span class="lineno"> 161</span> <span class="keyword">auto</span> now = std::chrono::system_clock::now();</div>
|
||
<div class="line"><span class="lineno"> 162</span> <span class="keyword">auto</span> in_time_t = std::chrono::system_clock::to_time_t(now);</div>
|
||
<div class="line"><span class="lineno"> 163</span> </div>
|
||
<div class="line"><span class="lineno"> 164</span> std::tm buf;</div>
|
||
<div class="line"><span class="lineno"> 165</span> localtime_s(&buf, &in_time_t);</div>
|
||
<div class="line"><span class="lineno"> 166</span> </div>
|
||
<div class="line"><span class="lineno"> 167</span> <span class="comment">// Obtenez les millisecondes <20> partir de maintenant</span></div>
|
||
<div class="line"><span class="lineno"> 168</span> <span class="keyword">auto</span> ms = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()) % 1000;</div>
|
||
<div class="line"><span class="lineno"> 169</span> </div>
|
||
<div class="line"><span class="lineno"> 170</span> <span class="comment">// Utilisez LogLevelToString pour obtenir la cha<68>ne de caract<63>res du niveau de log</span></div>
|
||
<div class="line"><span class="lineno"> 171</span> std::string levelStr = <a class="code hl_function" href="#a44f087518b3a028018146b07b2bc8e3b">GetLogLevelInfo</a>(level).name;</div>
|
||
<div class="line"><span class="lineno"> 172</span> </div>
|
||
<div class="line"><span class="lineno"> 173</span> std::stringstream ss;</div>
|
||
<div class="line"><span class="lineno"> 174</span> ss << <span class="stringliteral">"["</span> << std::put_time(&buf, <span class="stringliteral">"%Y-%m-%d"</span>) << <span class="stringliteral">"] "</span></div>
|
||
<div class="line"><span class="lineno"> 175</span> << <span class="stringliteral">"["</span> << std::put_time(&buf, <span class="stringliteral">"%X"</span>) << <span class="stringliteral">"."</span> << std::setfill(<span class="charliteral">'0'</span>) << std::setw(3) << ms.count() << <span class="stringliteral">"] "</span></div>
|
||
<div class="line"><span class="lineno"> 176</span> << <span class="stringliteral">"["</span> << levelStr << <span class="stringliteral">"] "</span></div>
|
||
<div class="line"><span class="lineno"> 177</span> << <span class="stringliteral">"["</span> << fileName << <span class="stringliteral">":"</span> << lineNumber << <span class="stringliteral">"] "</span></div>
|
||
<div class="line"><span class="lineno"> 178</span> << message;</div>
|
||
<div class="line"><span class="lineno"> 179</span> </div>
|
||
<div class="line"><span class="lineno"> 180</span> <a class="code hl_function" href="#a94f47ba0ef38ea7bcf1056f64d2645e4">Log</a>(ss.str(), level);</div>
|
||
<div class="line"><span class="lineno"> 181</span> </div>
|
||
<div class="line"><span class="lineno"> 182</span> std::ofstream file(m_logFilePath, std::ios::app);</div>
|
||
<div class="line"><span class="lineno"> 183</span> <span class="keywordflow">if</span> (file.is_open())</div>
|
||
<div class="line"><span class="lineno"> 184</span> {</div>
|
||
<div class="line"><span class="lineno"> 185</span> file << ss.str() << std::endl;</div>
|
||
<div class="line"><span class="lineno"> 186</span> file.close();</div>
|
||
<div class="line"><span class="lineno"> 187</span> }</div>
|
||
<div class="line"><span class="lineno"> 188</span> }</div>
|
||
<div class="ttc" id="aclass_logger_html_a44f087518b3a028018146b07b2bc8e3b"><div class="ttname"><a href="#a44f087518b3a028018146b07b2bc8e3b">Logger::GetLogLevelInfo</a></div><div class="ttdeci">static const LogLevelInfo GetLogLevelInfo(LogLevel level)</div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00088">Logger.h:88</a></div></div>
|
||
<div class="ttc" id="aclass_logger_html_a94f47ba0ef38ea7bcf1056f64d2645e4"><div class="ttname"><a href="#a94f47ba0ef38ea7bcf1056f64d2645e4">Logger::Log</a></div><div class="ttdeci">void Log(const std::string &message, const std::string &fileName, int lineNumber, LogLevel level=LogLevel::Info)</div><div class="ttdef"><b>Definition</b> <a href="_logger_8h_source.html#l00158">Logger.h:158</a></div></div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="ac9b431db882705fe2f33687938874676" name="ac9b431db882705fe2f33687938874676"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#ac9b431db882705fe2f33687938874676">◆ </a></span>Log() <span class="overload">[2/2]</span></h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void Logger::Log </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>message</em></span>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype"><a class="el" href="#ac744681e23720966b5f430ec2060da36">LogLevel</a></td> <td class="paramname"><span class="paramname"><em>level</em></span> )</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>Write a log message to the log buffer. This is the fonction wich is used to send log messages to the gui. It's using a buffer to store the log messages with a maximum size. The buffer default size is 100 messages. This limit can be changed by changing the logBufferSize variable. But it is not recommended to change it because it can cause performance issues. </p><dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">message</td><td>The log message to write. </td></tr>
|
||
<tr><td class="paramname">level</td><td>The log level for the message. </td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00200">200</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 201</span> {</div>
|
||
<div class="line"><span class="lineno"> 202</span> </div>
|
||
<div class="line"><span class="lineno"> 203</span> <span class="comment">// Si le niveau de log est d<>sactiv<69>, ne faites rien</span></div>
|
||
<div class="line"><span class="lineno"> 204</span> <span class="keywordflow">if</span> (m_disabledLogLevels[<a class="code hl_function" href="#a44f087518b3a028018146b07b2bc8e3b">GetLogLevelInfo</a>(level).value])</div>
|
||
<div class="line"><span class="lineno"> 205</span> {</div>
|
||
<div class="line"><span class="lineno"> 206</span> <span class="keywordflow">return</span>;</div>
|
||
<div class="line"><span class="lineno"> 207</span> }</div>
|
||
<div class="line"><span class="lineno"> 208</span> </div>
|
||
<div class="line"><span class="lineno"> 209</span> <span class="keywordflow">if</span> (logBuffer.size() >= logBufferSize)</div>
|
||
<div class="line"><span class="lineno"> 210</span> {</div>
|
||
<div class="line"><span class="lineno"> 211</span> logBuffer.pop_front();</div>
|
||
<div class="line"><span class="lineno"> 212</span> }</div>
|
||
<div class="line"><span class="lineno"> 213</span> logBuffer.push_back({ message, level });</div>
|
||
<div class="line"><span class="lineno"> 214</span> }</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<a id="a62b3e15fa3c170e5090a846fd0e9283e" name="a62b3e15fa3c170e5090a846fd0e9283e"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a62b3e15fa3c170e5090a846fd0e9283e">◆ </a></span>ManageLogFiles()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">void Logger::ManageLogFiles </td>
|
||
<td>(</td>
|
||
<td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>directoryPath</em></span></td><td>)</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
<p>This function manages log files in the specified directory. It checks for log files with the ".log" extension, Then it keeps only the three most recent log files, deleting the oldest ones if there are more than three. It also creates a new log file for the current execution with a timestamp in its name. </p><dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramname">directoryPath</td><td></td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00230">230</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
<div class="fragment"><div class="line"><span class="lineno"> 231</span> {</div>
|
||
<div class="line"><span class="lineno"> 232</span> std::vector<std::filesystem::path> logFiles;</div>
|
||
<div class="line"><span class="lineno"> 233</span> </div>
|
||
<div class="line"><span class="lineno"> 234</span> <span class="comment">// Parcourez tous les fichiers dans le dossier</span></div>
|
||
<div class="line"><span class="lineno"> 235</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& entry : std::filesystem::directory_iterator(directoryPath))</div>
|
||
<div class="line"><span class="lineno"> 236</span> {</div>
|
||
<div class="line"><span class="lineno"> 237</span> <span class="comment">// Si le fichier est un fichier de log, ajoutez-le <20> la liste</span></div>
|
||
<div class="line"><span class="lineno"> 238</span> <span class="keywordflow">if</span> (entry.path().extension() == <span class="stringliteral">".log"</span>)</div>
|
||
<div class="line"><span class="lineno"> 239</span> {</div>
|
||
<div class="line"><span class="lineno"> 240</span> logFiles.push_back(entry.path());</div>
|
||
<div class="line"><span class="lineno"> 241</span> }</div>
|
||
<div class="line"><span class="lineno"> 242</span> }</div>
|
||
<div class="line"><span class="lineno"> 243</span> </div>
|
||
<div class="line"><span class="lineno"> 244</span> <span class="comment">// Si nous avons plus de trois fichiers de log, supprimez le plus ancien</span></div>
|
||
<div class="line"><span class="lineno"> 245</span> <span class="keywordflow">while</span> (logFiles.size() >= 3)</div>
|
||
<div class="line"><span class="lineno"> 246</span> {</div>
|
||
<div class="line"><span class="lineno"> 247</span> <span class="comment">// Triez les fichiers par date de modification, le plus ancien en premier</span></div>
|
||
<div class="line"><span class="lineno"> 248</span> std::sort(logFiles.begin(), logFiles.end(), [](<span class="keyword">const</span> std::filesystem::path& a, <span class="keyword">const</span> std::filesystem::path& b)</div>
|
||
<div class="line"><span class="lineno"> 249</span> {</div>
|
||
<div class="line"><span class="lineno"> 250</span> return std::filesystem::last_write_time(a) < std::filesystem::last_write_time(b);</div>
|
||
<div class="line"><span class="lineno"> 251</span> });</div>
|
||
<div class="line"><span class="lineno"> 252</span> </div>
|
||
<div class="line"><span class="lineno"> 253</span> <span class="comment">// Supprimez le fichier le plus ancien</span></div>
|
||
<div class="line"><span class="lineno"> 254</span> std::filesystem::remove(logFiles[0]);</div>
|
||
<div class="line"><span class="lineno"> 255</span> </div>
|
||
<div class="line"><span class="lineno"> 256</span> <span class="comment">// Supprimez-le de la liste</span></div>
|
||
<div class="line"><span class="lineno"> 257</span> logFiles.erase(logFiles.begin());</div>
|
||
<div class="line"><span class="lineno"> 258</span> }</div>
|
||
<div class="line"><span class="lineno"> 259</span> </div>
|
||
<div class="line"><span class="lineno"> 260</span> <span class="comment">// Cr<43>ez un nouveau fichier de log pour cette ex<65>cution</span></div>
|
||
<div class="line"><span class="lineno"> 261</span> <span class="keyword">auto</span> now = std::chrono::system_clock::now();</div>
|
||
<div class="line"><span class="lineno"> 262</span> <span class="keyword">auto</span> in_time_t = std::chrono::system_clock::to_time_t(now);</div>
|
||
<div class="line"><span class="lineno"> 263</span> std::tm buf;</div>
|
||
<div class="line"><span class="lineno"> 264</span> localtime_s(&buf, &in_time_t);</div>
|
||
<div class="line"><span class="lineno"> 265</span> </div>
|
||
<div class="line"><span class="lineno"> 266</span> std::stringstream ss;</div>
|
||
<div class="line"><span class="lineno"> 267</span> ss << <span class="stringliteral">"Khaotic_log_"</span> << std::put_time(&buf, <span class="stringliteral">"%Y_%m_%d_%Hh%Mm%Ss"</span>) << <span class="stringliteral">".log"</span>;</div>
|
||
<div class="line"><span class="lineno"> 268</span> m_logFileName = ss.str();</div>
|
||
<div class="line"><span class="lineno"> 269</span> }</div>
|
||
</div><!-- fragment -->
|
||
</div>
|
||
</div>
|
||
<h2 class="groupheader">Member Data Documentation</h2>
|
||
<a id="a03b2af65e61167f66d3c68f904206206" name="a03b2af65e61167f66d3c68f904206206"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a03b2af65e61167f66d3c68f904206206">◆ </a></span>LogLevelCount</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">int Logger::LogLevelCount = static_cast<int>(LogLevel::Count)</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00059">59</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="acf4389b1b0b850181d3674f3527fc1cd" name="acf4389b1b0b850181d3674f3527fc1cd"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#acf4389b1b0b850181d3674f3527fc1cd">◆ </a></span>m_disabledLogLevels</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">bool Logger::m_disabledLogLevels[LogLevelCount]</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00271">271</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<a id="a72080e328dfb167d4ba1162c2f82811f" name="a72080e328dfb167d4ba1162c2f82811f"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#a72080e328dfb167d4ba1162c2f82811f">◆ </a></span>m_logFilePath</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">std::string Logger::m_logFilePath</td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p class="definition">Definition at line <a class="el" href="_logger_8h_source.html#l00272">272</a> of file <a class="el" href="_logger_8h_source.html">Logger.h</a>.</p>
|
||
|
||
</div>
|
||
</div>
|
||
<hr/>The documentation for this class was generated from the following file:<ul>
|
||
<li>enginecustom/src/inc/system/<a class="el" href="_logger_8h_source.html">Logger.h</a></li>
|
||
</ul>
|
||
</div><!-- contents -->
|
||
</div><!-- doc-content -->
|
||
<!-- start footer part -->
|
||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||
<ul>
|
||
<li class="navelem"><a class="el" href="class_logger.html">Logger</a></li>
|
||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
|
||
</ul>
|
||
</div>
|
||
</body>
|
||
</html>
|