CINXE.COM

Logging | Ebean

<!doctype html> <html lang="en"> <head> <title>Logging | Ebean</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="shortcut icon" href="/images/favicon.ico"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto|Source+Sans+Pro|Ubuntu&display=swap"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous"> <link rel="stylesheet" href="/css/reset3.css"> <link rel="stylesheet" href="/css/site3.css"> <link rel="stylesheet" href="/css/pygments3.css"> </head> <body> <div id="main"> <div id="banner"> <header> <nav id="top"> <h1 id="breadcrumb"> <a class="nav-logo" href="/"><img src="/images/logo-200.png" height="35"></a>&nbsp;&nbsp;<a href="/docs">Documentation</a><span class="sep">&nbsp;/&nbsp;</span><span class="last">Logging</span> </h1> <ul> <li><a onclick="toggleTheme();" title="switch dark light theme"><i class="fas fa-adjust"></i></a></li> </ul> </nav> </header> </div> <div class="grid grid-docs"> <aside> <nav class="side"> <ul> <li class="nav0 "> <a href="/docs/getting-started">Getting started</a> </li> <li class="nav0 "> <a href="/docs/intro">Introduction</a> </li> <li class="nav0 active"> <a class="active" href="/docs">Documentation</a> <ul> <li class="nav1 "> <a href="/docs/best-practice">Best practice</a> </li> <li class="nav1 "> <a href="/docs/query">Query</a> </li> <li class="nav1 "> <a href="/docs/persist">Persist</a> </li> <li class="nav1 "> <a href="/docs/transactions">Transactions</a> </li> <li class="nav1 "> <a href="/docs/mapping">Mapping</a> </li> <li class="nav1 "> <a href="/docs/ddl-generation">DDL & Migrations</a> </li> <li class="nav1 active"> <a class="active" href="/docs/logging">Logging</a> </li> <li class="nav1 "> <a href="/docs/testing">Testing</a> </li> <li class="nav1 "> <a href="/docs/read-replicas">Read Replicas</a> </li> <li class="nav1 "> <a href="/docs/database">Database platforms</a> </li> <li class="nav1 "> <a href="/docs/multi-database">Multiple databases</a> </li> <li class="nav1 "> <a href="/docs/kotlin">Kotlin</a> </li> <li><a href="/docs/tuning">Tuning</a></li> <li class="nav1 "> <a href="/docs/features">Features</a> </li> </ul> </li> <li class="nav0 "> <a href="/support">Getting help</a> </li> <li class="nav0 "> <a target="_blank" href="/apidoc/13">API Javadoc</a> </li> <li class="nav0 "> <a href="/videos">Videos</a> </li> <li class="nav0 "> <a href="/docs/upgrading">Upgrading</a> </li> <li class="nav0 "> <a href="/releases">Releases</a> </li> </ul> </nav> </aside> <article> <form action="https://www.google.com/search" method="get" class="inline-form"> <input type="hidden" name="as_sitesearch" value="ebean.io"> <div id="page-search"> <div class="input-group"> <input class="frm" name="q" id="searchinput" type="text" placeholder="Search... (press 's' to focus)" data-placeholder-focus="Search... (use '↑', '↓' and '⏎' to select results)" data-placeholder-blur="Search... (press 's' to focus)" autocomplete="off"> <div class="input-group-btn"> <button class="frm" type="submit"><i class="fas fa-search"></i></button> </div> </div> <div id="page-search-results" style="display: none;"> <ul id="search-results-container" class="search-results"><li class=" active"><a href="/docs" title="Docs"><span style="color:#777;">Docs</span> Documentation </a></li><li class=""><small style="color:#999;">And 101 more...</small></li></ul> </div> </div> </form> <h2>Logging</h2> <p> Ebean uses <a href="//www.slf4j.org/">SLF4J</a> for logging. </p> <h2 id="typical">Typical logback configuration</h2> <div class="syntax xml"><div class="highlight"><pre><span></span><span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.DDL&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.SQL&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.TXN&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.SUM&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="c">&lt;!-- L2 logging --&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.cache.QUERY&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.cache.BEAN&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.cache.COLL&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.cache.NATKEY&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="c">&lt;!-- Testing with Docker containers --&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.docker&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> </pre></div> </div> <h2 id="sql">SQL</h2> <p> During development it is expected that you include logging of <code>io.ebean.SQL</code> and <code>io.ebean.TXN</code>. These log the sql statements executed, bind values for statement execution. </p> <div class="syntax xml"><div class="highlight"><pre><span></span><span class="c">&lt;!-- SQL and bind values --&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.SQL&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> </pre></div> </div> <h2 id="txn">Transaction</h2> <p> During development it is expected that you include logging of <code>io.ebean.SQL</code> and <code>io.ebean.TXN</code>. These log the transaction demarcation. </p> <div class="syntax xml"><div class="highlight"><pre><span></span><span class="c">&lt;!-- Transaction Commit and Rollback events --&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.TXN&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> </pre></div> </div> <h2 id="ddl">DDL</h2> <div class="syntax xml"><div class="highlight"><pre><span></span><span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.DDL&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> </pre></div> </div> <h2 id="docker">Docker logging</h2> <p> Logging of docker commands used to start test containers with <a href="/docs/testing">ebean-test</a>. </p> <div class="syntax xml"><div class="highlight"><pre><span></span><span class="c">&lt;!-- Docker commands for starting test containers --&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.docker&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> </pre></div> </div> <h2 id="summary">Summary logging</h2> <p> The summary logging of <code>io.ebean.SUM</code> is useful for showing lazy loading queries and how they relate back to origin queries. This is useful when looking at more complex object graphs are built. In tuning queries for N+1 etc. </p> <div class="syntax xml"><div class="highlight"><pre><span></span><span class="c">&lt;!-- Summary level details --&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.SUM&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> </pre></div> </div> <h2 id="l2">L2 Cache logging</h2> <p>The L2 cache events can be logged using the logger entries below. This is useful when you are starting out using the L2 cache and looking at the behaviour with L2 caching. </p> <div class="syntax xml"><div class="highlight"><pre><span></span><span class="c">&lt;!-- L2 logging --&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.cache.QUERY&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.cache.BEAN&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.cache.COLL&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.cache.NATKEY&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> </pre></div> </div> <h2 id="elastic">Elastic logging</h2> <p> Logging queries and updates to ElasticSearch. </p> <div class="syntax xml"><div class="highlight"><pre><span></span><span class="c">&lt;!-- Elastic logging --&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.ELA&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.ELQ&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;logger</span> <span class="na">name=</span><span class="s">&quot;io.ebean.BULK&quot;</span> <span class="na">level=</span><span class="s">&quot;TRACE&quot;</span><span class="nt">/&gt;</span> </pre></div> </div> <nav class="next"> <p class="edit-page"> <a href="https://github.com/ebean-orm/website-source/blob/master/docs/logging/index.html"><i class="fab fa-github"></i> Edit Page</a> </p> <p class="next"> <a href="/docs/query" class="btn btn-info">Next: Query</a> </p> </nav> </article> </div> </div> <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script> <script src="/js/site3.js"></script> <script src="/js/search3.js"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-75181644-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-75181644-1'); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10