﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.5.0/dotnetdoc/api/Apache.Ignite.Core.Log.LoggerExtensions.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class LoggerExtensions
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class LoggerExtensions
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.0">
    
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
  <body data-spy="scroll" data-target="#affix">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Log.LoggerExtensions">
  
  
  <h1 id="Apache_Ignite_Core_Log_LoggerExtensions" data-uid="Apache.Ignite.Core.Log.LoggerExtensions" class="text-break">Class LoggerExtensions
  </h1>
  <div class="markdown level0 summary"><p>Extension methods for <a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">LoggerExtensions</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Log.html">Apache.Ignite.Core.Log</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Log_LoggerExtensions_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static class LoggerExtensions</code></pre>
  </div>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Debug_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Debug*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Debug_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Debug(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String)">Debug(ILogger, Exception, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Debug">Debug</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Debug(this ILogger logger, Exception ex, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Debug_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Debug*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Debug_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Debug(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String,System.Object[])">Debug(ILogger, Exception, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Debug">Debug</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Debug(this ILogger logger, Exception ex, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Debug_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Debug*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Debug_Apache_Ignite_Core_Log_ILogger_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Debug(Apache.Ignite.Core.Log.ILogger,System.String)">Debug(ILogger, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Debug">Debug</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Debug(this ILogger logger, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Debug_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Debug*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Debug_Apache_Ignite_Core_Log_ILogger_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Debug(Apache.Ignite.Core.Log.ILogger,System.String,System.Object[])">Debug(ILogger, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Debug">Debug</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Debug(this ILogger logger, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Error_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Error*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Error_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Error(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String)">Error(ILogger, Exception, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Error">Error</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Error(this ILogger logger, Exception ex, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Error_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Error*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Error_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Error(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String,System.Object[])">Error(ILogger, Exception, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Error">Error</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Error(this ILogger logger, Exception ex, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Error_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Error*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Error_Apache_Ignite_Core_Log_ILogger_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Error(Apache.Ignite.Core.Log.ILogger,System.String)">Error(ILogger, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Error">Error</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Error(this ILogger logger, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Error_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Error*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Error_Apache_Ignite_Core_Log_ILogger_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Error(Apache.Ignite.Core.Log.ILogger,System.String,System.Object[])">Error(ILogger, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Error">Error</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Error(this ILogger logger, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_GetLogger_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.GetLogger*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_GetLogger_Apache_Ignite_Core_Log_ILogger_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.GetLogger(Apache.Ignite.Core.Log.ILogger,System.String)">GetLogger(ILogger, String)</h4>
  <div class="markdown level1 summary"><p>Gets the <a class="xref" href="Apache.Ignite.Core.Log.CategoryLogger.html">CategoryLogger</a> with a specified category that wraps provided logger.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static ILogger GetLogger(this ILogger logger, string category)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">category</span></td>
        <td><p>The category.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><p>Logger that always uses specified category.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Info_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Info*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Info_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Info(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String)">Info(ILogger, Exception, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Info">Info</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Info(this ILogger logger, Exception ex, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Info_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Info*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Info_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Info(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String,System.Object[])">Info(ILogger, Exception, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Info">Info</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Info(this ILogger logger, Exception ex, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Info_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Info*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Info_Apache_Ignite_Core_Log_ILogger_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Info(Apache.Ignite.Core.Log.ILogger,System.String)">Info(ILogger, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Info">Info</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Info(this ILogger logger, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Info_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Info*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Info_Apache_Ignite_Core_Log_ILogger_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Info(Apache.Ignite.Core.Log.ILogger,System.String,System.Object[])">Info(ILogger, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Info">Info</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Info(this ILogger logger, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Log_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Log*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Log_Apache_Ignite_Core_Log_ILogger_Apache_Ignite_Core_Log_LogLevel_System_Exception_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Log(Apache.Ignite.Core.Log.ILogger,Apache.Ignite.Core.Log.LogLevel,System.Exception,System.String)">Log(ILogger, LogLevel, Exception, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Log(this ILogger logger, LogLevel level, Exception ex, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html">LogLevel</a></td>
        <td><span class="parametername">level</span></td>
        <td><p>The level.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Log_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Log*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Log_Apache_Ignite_Core_Log_ILogger_Apache_Ignite_Core_Log_LogLevel_System_Exception_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Log(Apache.Ignite.Core.Log.ILogger,Apache.Ignite.Core.Log.LogLevel,System.Exception,System.String,System.Object[])">Log(ILogger, LogLevel, Exception, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Log(this ILogger logger, LogLevel level, Exception ex, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html">LogLevel</a></td>
        <td><span class="parametername">level</span></td>
        <td><p>The level.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Log_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Log*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Log_Apache_Ignite_Core_Log_ILogger_Apache_Ignite_Core_Log_LogLevel_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Log(Apache.Ignite.Core.Log.ILogger,Apache.Ignite.Core.Log.LogLevel,System.String)">Log(ILogger, LogLevel, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Log(this ILogger logger, LogLevel level, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html">LogLevel</a></td>
        <td><span class="parametername">level</span></td>
        <td><p>The level.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Log_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Log*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Log_Apache_Ignite_Core_Log_ILogger_Apache_Ignite_Core_Log_LogLevel_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Log(Apache.Ignite.Core.Log.ILogger,Apache.Ignite.Core.Log.LogLevel,System.String,System.Object[])">Log(ILogger, LogLevel, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Log(this ILogger logger, LogLevel level, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html">LogLevel</a></td>
        <td><span class="parametername">level</span></td>
        <td><p>The level.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Trace_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Trace*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Trace_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Trace(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String)">Trace(ILogger, Exception, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Trace">Trace</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Trace(this ILogger logger, Exception ex, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Trace_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Trace*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Trace_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Trace(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String,System.Object[])">Trace(ILogger, Exception, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Trace">Trace</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Trace(this ILogger logger, Exception ex, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Trace_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Trace*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Trace_Apache_Ignite_Core_Log_ILogger_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Trace(Apache.Ignite.Core.Log.ILogger,System.String)">Trace(ILogger, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Trace">Trace</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Trace(this ILogger logger, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Trace_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Trace*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Trace_Apache_Ignite_Core_Log_ILogger_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Trace(Apache.Ignite.Core.Log.ILogger,System.String,System.Object[])">Trace(ILogger, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Trace">Trace</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Trace(this ILogger logger, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Warn_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Warn*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Warn_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Warn(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String)">Warn(ILogger, Exception, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Warn">Warn</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Warn(this ILogger logger, Exception ex, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Warn_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Warn*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Warn_Apache_Ignite_Core_Log_ILogger_System_Exception_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Warn(Apache.Ignite.Core.Log.ILogger,System.Exception,System.String,System.Object[])">Warn(ILogger, Exception, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Warn">Warn</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Warn(this ILogger logger, Exception ex, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Exception</span></td>
        <td><span class="parametername">ex</span></td>
        <td><p>The exception.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Warn_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Warn*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Warn_Apache_Ignite_Core_Log_ILogger_System_String_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Warn(Apache.Ignite.Core.Log.ILogger,System.String)">Warn(ILogger, String)</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Warn">Warn</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Warn(this ILogger logger, string message)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Log_LoggerExtensions_Warn_" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Warn*"></a>
  <h4 id="Apache_Ignite_Core_Log_LoggerExtensions_Warn_Apache_Ignite_Core_Log_ILogger_System_String_System_Object___" data-uid="Apache.Ignite.Core.Log.LoggerExtensions.Warn(Apache.Ignite.Core.Log.ILogger,System.String,System.Object[])">Warn(ILogger, String, Object[])</h4>
  <div class="markdown level1 summary"><p>Logs the message with <a class="xref" href="Apache.Ignite.Core.Log.LogLevel.html#Apache_Ignite_Core_Log_LogLevel_Warn">Warn</a> level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static void Warn(this ILogger logger, string message, params object[] args)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Log.ILogger.html">ILogger</a></td>
        <td><span class="parametername">logger</span></td>
        <td><p>The logger.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">message</span></td>
        <td><p>The message.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Object</span>[]</td>
        <td><span class="parametername">args</span></td>
        <td><p>The arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            © 2015 - 2018 The Apache Software Foundation
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
