| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <!-- Generated by Apache Maven Doxia at 2017-11-19 --> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
| <title>Log4j Core – CPD Results - Apache Log4j Core</title> |
| <link rel="stylesheet" href="./css/bootstrap.min.css" type="text/css" /> |
| <link rel="stylesheet" href="./css/site.css" type="text/css" /> |
| <script type="text/javascript" src="./js/jquery.min.js"></script> |
| <script type="text/javascript" src="./js/bootstrap.min.js"></script> |
| <script type="text/javascript" src="./js/prettify.min.js"></script> |
| <script type="text/javascript" src="./js/site.js"></script> |
| <meta name="Date-Revision-yyyymmdd" content="20171119" /> |
| <meta http-equiv="Content-Language" content="en" /> |
| |
| </head> |
| <body class="composite"> |
| <a href="https://logging.apache.org/"> |
| <img class="logo-left" src="./images/ls-logo.jpg" alt="Apache logging services logo" /> |
| </a> |
| <img class="logo-right" src="./images/logo.png" alt="Apache log4j logo" /> |
| <div class="clear"></div> |
| |
| <div class="navbar"> |
| <div class="navbar-inner"> |
| <div class="container-fluid"> |
| <a class="brand" href="https://logging.apache.org/log4j/2.x/log4j-core/">Apache Log4j Core ™</a> |
| <ul class="nav"> |
| <li> |
| |
| |
| <a href="https://wiki.apache.org/logging" class="external" target="_blank" title="Logging Wiki">Logging Wiki</a> |
| </li> |
| <li> |
| |
| |
| <a href="https://www.apache.org/" class="external" target="_blank" title="Apache">Apache</a> |
| </li> |
| <li> |
| <a href="../../../" title="Logging Services">Logging Services</a> |
| </li> |
| <li> |
| |
| |
| <a href="https://analysis.apache.org/dashboard/index/org.apache.logging.log4j:log4j" class="external" target="_blank" title="Sonar">Sonar</a> |
| </li> |
| <li> |
| |
| |
| <a href="https://github.com/apache/logging-log4j2" class="external" target="_blank" title="GitHub">GitHub</a> |
| </li> |
| <li> |
| |
| |
| <a href="http://www.apache.org/" class="external" target="_blank" title="Apache">Apache</a> |
| </li> |
| <li> |
| |
| |
| <a href="http://logging.apache.org/" class="external" target="_blank" title="Logging Services">Logging Services</a> |
| </li> |
| <li> |
| <a href="../index.html" title="Log4j">Log4j</a> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| |
| <div class="container-fluid"> |
| <table class="layout-table"> |
| <tr> |
| <td class="sidebar"> |
| <div class="well sidebar-nav"> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-home"></i>Apache Log4j™ 2</li> |
| <li class="none"> |
| <a href="../index.html" title="About">About</a> |
| </li> |
| <li class="none"> |
| <a href="../download.html" title="Download">Download</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../javadoc.html" title="Javadoc">Javadoc</a> |
| </li> |
| <li class="none"> |
| <a href="../maven-artifacts.html" title="Maven, Ivy, Gradle Artifacts">Maven, Ivy, Gradle Artifacts</a> |
| </li> |
| <li class="none"> |
| <a href="../runtime-dependencies.html" title="Runtime Dependencies">Runtime Dependencies</a> |
| </li> |
| <li class="none"> |
| <a href="../changelog.html" title="Changelog">Changelog</a> |
| </li> |
| <li class="none"> |
| <a href="../faq.html" title="FAQ">FAQ</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../performance.html" title="Performance">Performance</a> |
| </li> |
| <li class="none"> |
| <a href="../articles.html" title="Articles and Tutorials">Articles and Tutorials</a> |
| </li> |
| <li class="none"> |
| <a href="../thanks.html" title="Thanks">Thanks</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-pencil"></i>For Contributors</li> |
| <li class="none"> |
| <a href="../build.html" title="Building Log4j from Source">Building Log4j from Source</a> |
| </li> |
| <li class="none"> |
| <a href="../guidelines.html" title="Guidelines">Guidelines</a> |
| </li> |
| <li class="none"> |
| <a href="../javastyle.html" title="Style Guide">Style Guide</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-book"></i>Manual</li> |
| <li class="none"> |
| <a href="../manual/index.html" title="Introduction">Introduction</a> |
| </li> |
| <li class="none"> |
| <a href="../manual/architecture.html" title="Architecture">Architecture</a> |
| </li> |
| <li class="none"> |
| <a href="../manual/migration.html" title="Log4j 1.x Migration">Log4j 1.x Migration</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/api.html" title="Java API">Java API</a> |
| </li> |
| <li class="none"> |
| <a href="../manual/scala-api.html" title="Scala API">Scala API</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/configuration.html" title="Configuration">Configuration</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/webapp.html" title="Web Applications and JSPs">Web Applications and JSPs</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/lookups.html" title="Lookups">Lookups</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/appenders.html" title="Appenders">Appenders</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/layouts.html" title="Layouts">Layouts</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/filters.html" title="Filters">Filters</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/async.html" title="Async Loggers">Async Loggers</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/garbagefree.html" title="Garbage-free Logging">Garbage-free Logging</a> |
| </li> |
| <li class="none"> |
| <a href="../manual/jmx.html" title="JMX">JMX</a> |
| </li> |
| <li class="none"> |
| <a href="../manual/logsep.html" title="Logging Separation">Logging Separation</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/extending.html" title="Extending Log4j">Extending Log4j</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/plugins.html" title="Plugins">Plugins</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/customconfig.html" title="Programmatic Log4j Configuration">Programmatic Log4j Configuration</a> |
| </li> |
| <li class="collapsed"> |
| <a href="../manual/customloglevels.html" title="Custom Log Levels">Custom Log Levels</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-tags"></i>Related Projects</li> |
| <li class="none"> |
| |
| |
| <a href="http://logging.apache.org/log4j/scala/index.html" class="external" target="_blank" title="Log4j-Scala">Log4j-Scala</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-tags"></i>Legacy</li> |
| <li class="none"> |
| |
| |
| <a href="http://logging.apache.org/log4j/1.2/" class="external" target="_blank" title="Log4j 1.2">Log4j 1.2</a> |
| </li> |
| <li class="none"> |
| |
| |
| <a href="http://logging.apache.org/log4j/log4j-2.3/" class="external" target="_blank" title="Log4j 2.3">Log4j 2.3</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-cog"></i>Components</li> |
| <li class="none"> |
| <a href="../log4j-api/index.html" title="API">API</a> |
| </li> |
| <li class="none active"> |
| <a href="../log4j-core/index.html" title="Implementation">Implementation</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-jcl/index.html" title="Commons Logging Bridge">Commons Logging Bridge</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-1.2-api/index.html" title="Log4j 1.2 API">Log4j 1.2 API</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-slf4j-impl/index.html" title="SLF4J Binding">SLF4J Binding</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-jul/index.html" title="JUL Adapter">JUL Adapter</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-to-slf4j/index.html" title="Log4j 2 to SLF4J Adapter">Log4j 2 to SLF4J Adapter</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-flume-ng/index.html" title="Apache Flume Appender">Apache Flume Appender</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-taglib/index.html" title="Log4j Tag Library">Log4j Tag Library</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-jmx-gui/index.html" title="Log4j JMX GUI">Log4j JMX GUI</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-web/index.html" title="Log4j Web Application Support">Log4j Web Application Support</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-appserver/index.html" title="Log4j Application Server Integration">Log4j Application Server Integration</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-couchdb/index.html" title="Log4j CouchDB appender">Log4j CouchDB appender</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-mongodb/index.html" title="Log4j MongoDB appender">Log4j MongoDB appender</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-cassandra/index.html" title="Log4j Cassandra appender">Log4j Cassandra appender</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-iostreams/index.html" title="Log4j IO Streams">Log4j IO Streams</a> |
| </li> |
| <li class="none"> |
| <a href="../log4j-liquibase/index.html" title="Log4j Liquibase Binding">Log4j Liquibase Binding</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header">Component Documentation</li> |
| <li class="collapsed"> |
| <a href="project-info.html" title="Component Information">Component Information</a> |
| </li> |
| <li class="expanded"> |
| <a href="project-reports.html" title="Component Reports">Component Reports</a> |
| <ul> |
| <li class="none"> |
| <a href="jira-report.html" title="JIRA Report">JIRA Report</a> |
| </li> |
| <li class="none"> |
| <a href="rat-report.html" title="Rat Report">Rat Report</a> |
| </li> |
| <li class="none"> |
| <a href="checkstyle.html" title="Checkstyle">Checkstyle</a> |
| </li> |
| <li class="none"> |
| <a href="apidocs/index.html" title="Javadoc">Javadoc</a> |
| </li> |
| <li class="none"> |
| <a href="xref/index.html" title="Source Xref">Source Xref</a> |
| </li> |
| <li class="none active"> |
| <a href="cpd.html" title="CPD">CPD</a> |
| </li> |
| <li class="none"> |
| <a href="pmd.html" title="PMD">PMD</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-info-sign"></i>Log4j Project Information</li> |
| <li class="none"> |
| <a href="../dependencies.html" title="Dependencies">Dependencies</a> |
| </li> |
| <li class="none"> |
| <a href="../dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a> |
| </li> |
| <li class="none"> |
| <a href="../dependency-management.html" title="Dependency Management">Dependency Management</a> |
| </li> |
| <li class="none"> |
| <a href="../team-list.html" title="Project Team">Project Team</a> |
| </li> |
| <li class="none"> |
| <a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a> |
| </li> |
| <li class="none"> |
| <a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a> |
| </li> |
| <li class="none"> |
| <a href="../license.html" title="Project License">Project License</a> |
| </li> |
| <li class="none"> |
| <a href="../source-repository.html" title="Source Repository">Source Repository</a> |
| </li> |
| <li class="none"> |
| <a href="../project-summary.html" title="Project Summary">Project Summary</a> |
| </li> |
| </ul> |
| <ul class="nav nav-list"> |
| <li class="nav-header"><i class="icon-cog"></i>Log4j Project Reports</li> |
| <li class="none"> |
| <a href="../changes-report.html" title="Changes Report">Changes Report</a> |
| </li> |
| <li class="none"> |
| <a href="../jira-report.html" title="JIRA Report">JIRA Report</a> |
| </li> |
| <li class="none"> |
| <a href="../surefire-report.html" title="Surefire Report">Surefire Report</a> |
| </li> |
| <li class="none"> |
| <a href="../rat-report.html" title="RAT Report">RAT Report</a> |
| </li> |
| </ul> |
| </div> |
| <div id="poweredBy"> |
| <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> |
| <img class="poweredBy" alt="Built by Maven" src="./images/maven-feather.png" /> |
| </a> |
| </div> |
| </td> |
| <td class="content"> |
| <div class="section"> |
| <h2><a name="CPD_Results"></a>CPD Results</h2> |
| <p>The following document contains the results of PMD's <a class="externalLink" href="http://pmd.sourceforge.net/cpd.html">CPD</a> 5.6.1.</p></div> |
| <div class="section"> |
| <h2><a name="Duplications"></a>Duplications</h2> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/filter/LevelRangeFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/LevelRangeFilter.html#L107">107</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/filter/ThresholdFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/ThresholdFilter.html#L75">75</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7, final Object p8) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7, final Object p8, final Object p9) { |
| return filter(level); |
| } |
| |
| public Level getMinLevel() {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/filter/BurstFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/BurstFilter.html#L115">115</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/filter/LevelRangeFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/LevelRangeFilter.html#L106">106</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> return filter(event.getLevel()); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7, final Object p8) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7, final Object p8, final Object p9) { |
| return filter(level); |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/filter/BurstFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/BurstFilter.html#L116">116</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/filter/ThresholdFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/ThresholdFilter.html#L75">75</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7, final Object p8) { |
| return filter(level); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7, final Object p8, final Object p9) { |
| return filter(level); |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/filter/ThreadContextMapFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/ThreadContextMapFilter.html#L126">126</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/filter/TimeFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/TimeFilter.html#L145">145</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0) { |
| return filter(); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1) { |
| return filter(); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2) { |
| return filter(); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3) { |
| return filter(); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4) { |
| return filter(); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5) { |
| return filter(); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6) { |
| return filter(); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7) { |
| return filter(); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7, final Object p8) { |
| return filter(); |
| } |
| |
| @Override |
| public Result filter(final Logger logger, final Level level, final Marker marker, final String msg, |
| final Object p0, final Object p1, final Object p2, final Object p3, |
| final Object p4, final Object p5, final Object p6, |
| final Object p7, final Object p8, final Object p9) { |
| return filter(); |
| } |
| |
| @PluginFactory</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/jackson/LogEventJsonMixIn.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/jackson/LogEventJsonMixIn.html#L62">62</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/jackson/LogEventWithContextListMixIn.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/jackson/LogEventWithContextListMixIn.html#L60">60</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> @JsonDeserialize(using = ContextDataDeserializer.class) |
| //@JsonIgnore |
| @Override |
| public abstract ReadOnlyStringMap getContextData(); |
| |
| @JsonProperty(JsonConstants.ELT_CONTEXT_STACK) |
| @JacksonXmlElementWrapper(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_CONTEXT_STACK) |
| @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_CONTEXT_STACK_ITEM) |
| @Override |
| public abstract ContextStack getContextStack(); |
| |
| @JsonProperty() |
| @JacksonXmlProperty(isAttribute = true) |
| @Override |
| public abstract Level getLevel(); |
| |
| @JsonProperty() |
| @JacksonXmlProperty(isAttribute = true) |
| @Override |
| public abstract String getLoggerFqcn(); |
| |
| @JsonProperty() |
| @JacksonXmlProperty(isAttribute = true) |
| @Override |
| public abstract String getLoggerName(); |
| |
| @JsonProperty(JsonConstants.ELT_MARKER) |
| @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_MARKER) |
| @Override |
| public abstract Marker getMarker(); |
| |
| @JsonProperty(JsonConstants.ELT_MESSAGE) |
| @JsonSerialize(using = MessageSerializer.class) |
| @JsonDeserialize(using = SimpleMessageDeserializer.class) |
| @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_MESSAGE) |
| @Override |
| public abstract Message getMessage(); |
| |
| @JsonProperty(JsonConstants.ELT_SOURCE) |
| @JsonDeserialize(using = Log4jStackTraceElementDeserializer.class) |
| @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_SOURCE) |
| @Override |
| public abstract StackTraceElement getSource(); |
| |
| @Override |
| @JsonProperty("threadId") |
| @JacksonXmlProperty(isAttribute = true, localName = "threadId") |
| public abstract long getThreadId(); |
| |
| @Override |
| @JsonProperty("thread") |
| @JacksonXmlProperty(isAttribute = true, localName = "thread") |
| public abstract String getThreadName(); |
| |
| @Override |
| @JsonProperty("threadPriority") |
| @JacksonXmlProperty(isAttribute = true, localName = "threadPriority") |
| public abstract int getThreadPriority(); |
| |
| @JsonIgnore |
| @Override |
| public abstract Throwable getThrown(); |
| |
| @JsonProperty(JsonConstants.ELT_THROWN) |
| @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_THROWN) |
| @Override |
| public abstract ThrowableProxy getThrownProxy(); |
| |
| @JsonProperty() |
| @JacksonXmlProperty(isAttribute = true) |
| @Override |
| public abstract long getTimeMillis(); |
| |
| @JsonProperty() |
| @JacksonXmlProperty(isAttribute = true) |
| @Override |
| public abstract boolean isEndOfBatch(); |
| |
| @JsonIgnore |
| @Override |
| public abstract boolean isIncludeLocation(); |
| |
| @Override |
| public abstract void setEndOfBatch(boolean endOfBatch); |
| |
| @Override |
| public abstract void setIncludeLocation(boolean locationRequired); |
| |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/layout/JsonLayout.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/JsonLayout.html#L145">145</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/layout/YamlLayout.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/YamlLayout.html#L96">96</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> super(config, new JacksonFactory.JSON(encodeThreadContextAsList, includeStacktrace, stacktraceAsString).newWriter( |
| locationInfo, properties, compact), |
| charset, compact, complete, eventEol, |
| PatternLayout.newSerializerBuilder().setConfiguration(config).setPattern(headerPattern).setDefaultPattern(DEFAULT_HEADER).build(), |
| PatternLayout.newSerializerBuilder().setConfiguration(config).setPattern(footerPattern).setDefaultPattern(DEFAULT_FOOTER).build(), |
| includeNullDelimiter, |
| additionalFields); |
| } |
| |
| /** |
| * Returns appropriate JSON header. |
| * |
| * @return a byte array containing the header, opening the JSON array. |
| */ |
| @Override |
| public byte[] getHeader() { |
| if (!this.complete) { |
| return null; |
| } |
| final StringBuilder buf = new StringBuilder(); |
| final String str = serializeToString(getHeaderSerializer()); |
| if (str != null) { |
| buf.append(str); |
| } |
| buf.append(this.eol); |
| return getBytes(buf.toString()); |
| } |
| |
| /** |
| * Returns appropriate JSON footer. |
| * |
| * @return a byte array containing the footer, closing the JSON array. |
| */ |
| @Override |
| public byte[] getFooter() { |
| if (!this.complete) { |
| return null; |
| } |
| final StringBuilder buf = new StringBuilder(); |
| buf.append(this.eol); |
| final String str = serializeToString(getFooterSerializer()); |
| if (str != null) { |
| buf.append(str); |
| } |
| buf.append(this.eol); |
| return getBytes(buf.toString()); |
| } |
| |
| @Override |
| public Map<String, String> getContentFormat() { |
| final Map<String, String> result = new HashMap<>(); |
| result.put("version", "2.0"); |
| return result; |
| } |
| |
| /** |
| * @return The content type. |
| */ |
| @Override |
| public String getContentType() { |
| return CONTENT_TYPE + "; charset=" + this.getCharset(); |
| } |
| |
| /** |
| * Creates a JSON Layout. |
| * @param config |
| * The plugin configuration. |
| * @param locationInfo |
| * If "true", includes the location information in the generated JSON. |
| * @param properties |
| * If "true", includes the thread context map in the generated JSON. |
| * @param propertiesAsList |
| * If true, the thread context map is included as a list of map entry objects, where each entry has |
| * a "key" attribute (whose value is the key) and a "value" attribute (whose value is the value). |
| * Defaults to false, in which case the thread context map is included as a simple map of key-value |
| * pairs. |
| * @param complete |
| * If "true", includes the JSON header and footer, and comma between records. |
| * @param compact |
| * If "true", does not use end-of-lines and indentation, defaults to "false". |
| * @param eventEol |
| * If "true", forces an EOL after each log event (even if compact is "true"), defaults to "false". This |
| * allows one even per line, even in compact mode. |
| * @param headerPattern |
| * The header pattern, defaults to {@code "["} if null. |
| * @param footerPattern |
| * The header pattern, defaults to {@code "]"} if null. |
| * @param charset |
| * The character set to use, if {@code null}, uses "UTF-8". |
| * @param includeStacktrace |
| * If "true", includes the stacktrace of any Throwable in the generated JSON, defaults to "true". |
| * @return A JSON Layout. |
| * |
| * @deprecated Use {@link #newBuilder()} instead |
| */ |
| @Deprecated |
| public static JsonLayout createLayout(</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/appender/AbstractFileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/AbstractFileAppender.html#L71">71</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/appender/FileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/FileAppender.html#L105">105</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> public String getAdvertiseUri() { |
| return advertiseUri; |
| } |
| |
| public String getFileName() { |
| return fileName; |
| } |
| |
| public boolean isAdvertise() { |
| return advertise; |
| } |
| |
| public boolean isAppend() { |
| return append; |
| } |
| |
| public boolean isCreateOnDemand() { |
| return createOnDemand; |
| } |
| |
| public boolean isLocking() { |
| return locking; |
| } |
| |
| public String getFilePermissions() { |
| return filePermissions; |
| } |
| |
| public String getFileOwner() { |
| return fileOwner; |
| } |
| |
| public String getFileGroup() { |
| return fileGroup; |
| } |
| |
| public B withAdvertise(final boolean advertise) { |
| this.advertise = advertise; |
| return asBuilder(); |
| } |
| |
| public B withAdvertiseUri(final String advertiseUri) { |
| this.advertiseUri = advertiseUri; |
| return asBuilder(); |
| } |
| |
| public B withAppend(final boolean append) { |
| this.append = append; |
| return asBuilder(); |
| } |
| |
| public B withFileName(final String fileName) { |
| this.fileName = fileName; |
| return asBuilder(); |
| } |
| |
| public B withCreateOnDemand(final boolean createOnDemand) { |
| this.createOnDemand = createOnDemand; |
| return asBuilder(); |
| } |
| |
| public B withLocking(final boolean locking) { |
| this.locking = locking; |
| return asBuilder(); |
| } |
| |
| public B withFilePermissions(final String filePermissions) { |
| this.filePermissions = filePermissions; |
| return asBuilder(); |
| } |
| |
| public B withFileOwner(final String fileOwner) { |
| this.fileOwner = fileOwner; |
| return asBuilder(); |
| } |
| |
| public B withFileGroup(final String fileGroup) { |
| this.fileGroup = fileGroup; |
| return asBuilder(); |
| } |
| |
| } |
| |
| private final String fileName;</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/util/CronExpression.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/util/CronExpression.html#L1266">1266</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/util/CronExpression.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/util/CronExpression.html#L1302">1302</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> final java.util.Calendar tcal = java.util.Calendar.getInstance(getTimeZone()); |
| tcal.set(Calendar.SECOND, 0); |
| tcal.set(Calendar.MINUTE, 0); |
| tcal.set(Calendar.HOUR_OF_DAY, 0); |
| tcal.set(Calendar.DAY_OF_MONTH, day); |
| tcal.set(Calendar.MONTH, mon - 1); |
| tcal.set(Calendar.YEAR, cl.get(Calendar.YEAR)); |
| |
| final int ldom = getLastDayOfMonth(mon, cl.get(Calendar.YEAR)); |
| final int dow = tcal.get(Calendar.DAY_OF_WEEK); |
| |
| if (dow == Calendar.SATURDAY && day == 1) { |
| day += 2; |
| } else if (dow == Calendar.SATURDAY) { |
| day -= 1; |
| } else if (dow == Calendar.SUNDAY && day == ldom) { |
| day -= 2; |
| } else if (dow == Calendar.SUNDAY) { |
| day += 1; |
| } |
| |
| tcal.set(Calendar.SECOND, sec); |
| tcal.set(Calendar.MINUTE, min); |
| tcal.set(Calendar.HOUR_OF_DAY, hr); |
| tcal.set(Calendar.DAY_OF_MONTH, day); |
| tcal.set(Calendar.MONTH, mon - 1); |
| final Date nTime = tcal.getTime(); |
| if (nTime.before(afterTime)) { |
| day = 1;</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/appender/FileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/FileAppender.html#L102">102</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/appender/RollingFileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/RollingFileAppender.html#L154">154</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> !bufferedIo || isImmediateFlush(), advertise ? getConfiguration().getAdvertiser() : null); |
| } |
| |
| public String getAdvertiseUri() { |
| return advertiseUri; |
| } |
| |
| public String getFileName() { |
| return fileName; |
| } |
| |
| public boolean isAdvertise() { |
| return advertise; |
| } |
| |
| public boolean isAppend() { |
| return append; |
| } |
| |
| public boolean isCreateOnDemand() { |
| return createOnDemand; |
| } |
| |
| public boolean isLocking() { |
| return locking; |
| } |
| |
| public String getFilePermissions() { |
| return filePermissions; |
| } |
| |
| public String getFileOwner() { |
| return fileOwner; |
| } |
| |
| public String getFileGroup() { |
| return fileGroup; |
| } |
| |
| public B withAdvertise(final boolean advertise) { |
| this.advertise = advertise; |
| return asBuilder(); |
| } |
| |
| public B withAdvertiseUri(final String advertiseUri) { |
| this.advertiseUri = advertiseUri; |
| return asBuilder(); |
| } |
| |
| public B withAppend(final boolean append) { |
| this.append = append; |
| return asBuilder(); |
| } |
| |
| public B withFileName(final String fileName) { |
| this.fileName = fileName; |
| return asBuilder(); |
| } |
| |
| public B withCreateOnDemand(final boolean createOnDemand) { |
| this.createOnDemand = createOnDemand; |
| return asBuilder(); |
| } |
| |
| public B withLocking(final boolean locking) { |
| this.locking = locking; |
| return asBuilder(); |
| } |
| |
| public B withFilePermissions(final String filePermissions) {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/MemoryMappedFileAppender.html#L130">130</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/appender/RandomAccessFileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/RandomAccessFileAppender.html#L115">115</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> final Filter filter, final MemoryMappedFileManager manager, final String filename, |
| final boolean ignoreExceptions, final boolean immediateFlush, final Advertiser advertiser) { |
| super(name, layout, filter, ignoreExceptions, immediateFlush, manager); |
| if (advertiser != null) { |
| final Map<String, String> configuration = new HashMap<>(layout.getContentFormat()); |
| configuration.putAll(manager.getContentFormat()); |
| configuration.put("contentType", layout.getContentType()); |
| configuration.put("name", name); |
| advertisement = advertiser.advertise(configuration); |
| } |
| this.fileName = filename; |
| this.advertiser = advertiser; |
| } |
| |
| @Override |
| public boolean stop(final long timeout, final TimeUnit timeUnit) { |
| setStopping(); |
| super.stop(timeout, timeUnit, false); |
| if (advertiser != null) { |
| advertiser.unadvertise(advertisement); |
| } |
| setStopped(); |
| return true; |
| } |
| |
| /** |
| * Write the log entry rolling over the file when required. |
| * |
| * @param event The LogEvent. |
| */ |
| @Override |
| public void append(final LogEvent event) { |
| |
| // Leverage the nice batching behaviour of async Loggers/Appenders: |
| // we can signal the file manager that it needs to flush the buffer |
| // to disk at the end of a batch. |
| // From a user's point of view, this means that all log events are |
| // _always_ available in the log file, without incurring the overhead |
| // of immediateFlush=true. |
| getManager().setEndOfBatch(event.isEndOfBatch()); // FIXME manager's EndOfBatch threadlocal can be deleted |
| super.append(event); // TODO should only call force() if immediateFlush && endOfBatch? |
| } |
| |
| /** |
| * Returns the file name this appender is associated with. |
| * |
| * @return The File name. |
| */ |
| public String getFileName() { |
| return this.fileName; |
| } |
| |
| /** |
| * Returns the length of the memory mapped region. |
| * |
| * @return the length of the memory mapped region |
| */ |
| public int getRegionLength() {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/appender/AbstractFileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/AbstractFileAppender.html#L71">71</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/appender/RollingFileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/RollingFileAppender.html#L157">157</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> public String getAdvertiseUri() { |
| return advertiseUri; |
| } |
| |
| public String getFileName() { |
| return fileName; |
| } |
| |
| public boolean isAdvertise() { |
| return advertise; |
| } |
| |
| public boolean isAppend() { |
| return append; |
| } |
| |
| public boolean isCreateOnDemand() { |
| return createOnDemand; |
| } |
| |
| public boolean isLocking() { |
| return locking; |
| } |
| |
| public String getFilePermissions() { |
| return filePermissions; |
| } |
| |
| public String getFileOwner() { |
| return fileOwner; |
| } |
| |
| public String getFileGroup() { |
| return fileGroup; |
| } |
| |
| public B withAdvertise(final boolean advertise) { |
| this.advertise = advertise; |
| return asBuilder(); |
| } |
| |
| public B withAdvertiseUri(final String advertiseUri) { |
| this.advertiseUri = advertiseUri; |
| return asBuilder(); |
| } |
| |
| public B withAppend(final boolean append) { |
| this.append = append; |
| return asBuilder(); |
| } |
| |
| public B withFileName(final String fileName) { |
| this.fileName = fileName; |
| return asBuilder(); |
| } |
| |
| public B withCreateOnDemand(final boolean createOnDemand) { |
| this.createOnDemand = createOnDemand; |
| return asBuilder(); |
| } |
| |
| public B withLocking(final boolean locking) { |
| this.locking = locking; |
| return asBuilder(); |
| } |
| |
| public B withFilePermissions(final String filePermissions) {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/layout/MarkerPatternSelector.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/MarkerPatternSelector.html#L135">135</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/layout/ScriptPatternSelector.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/ScriptPatternSelector.html#L160">160</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> final PatternParser parser = PatternLayout.createPatternParser(config); |
| for (final PatternMatch property : properties) { |
| try { |
| final List<PatternFormatter> list = parser.parse(property.getPattern(), alwaysWriteExceptions, |
| disableAnsi, noConsoleNoAnsi); |
| formatterMap.put(property.getKey(), list.toArray(new PatternFormatter[list.size()])); |
| patternMap.put(property.getKey(), property.getPattern()); |
| } catch (final RuntimeException ex) { |
| throw new IllegalArgumentException("Cannot parse pattern '" + property.getPattern() + "'", ex); |
| } |
| } |
| try { |
| final List<PatternFormatter> list = parser.parse(defaultPattern, alwaysWriteExceptions, disableAnsi, |
| noConsoleNoAnsi); |
| defaultFormatters = list.toArray(new PatternFormatter[list.size()]); |
| this.defaultPattern = defaultPattern; |
| } catch (final RuntimeException ex) { |
| throw new IllegalArgumentException("Cannot parse pattern '" + defaultPattern + "'", ex); |
| } |
| } |
| |
| @Override |
| public PatternFormatter[] getFormatters(final LogEvent event) { |
| final Marker marker = event.getMarker();</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/config/AwaitCompletionReliabilityStrategy.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/config/AwaitCompletionReliabilityStrategy.html#L47">47</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/config/LockingReliabilityStrategy.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/config/LockingReliabilityStrategy.html#L39">39</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> this.loggerConfig = Objects.requireNonNull(loggerConfig, "loggerConfig is null"); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier, |
| * java.lang.String, java.lang.String, org.apache.logging.log4j.Marker, org.apache.logging.log4j.Level, |
| * org.apache.logging.log4j.message.Message, java.lang.Throwable) |
| */ |
| @Override |
| public void log(final Supplier<LoggerConfig> reconfigured, final String loggerName, final String fqcn, |
| final Marker marker, final Level level, final Message data, final Throwable t) { |
| |
| final LoggerConfig config = getActiveLoggerConfig(reconfigured); |
| try { |
| config.log(loggerName, fqcn, marker, level, data, t); |
| } finally { |
| config.getReliabilityStrategy().afterLogEvent(); |
| } |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier, |
| * org.apache.logging.log4j.core.LogEvent) |
| */ |
| @Override |
| public void log(final Supplier<LoggerConfig> reconfigured, final LogEvent event) { |
| final LoggerConfig config = getActiveLoggerConfig(reconfigured); |
| try { |
| config.log(event); |
| } finally { |
| config.getReliabilityStrategy().afterLogEvent(); |
| } |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeLogEvent(org.apache.logging.log4j.core.config. |
| * LoggerConfig, org.apache.logging.log4j.util.Supplier) |
| */ |
| @Override |
| public LoggerConfig getActiveLoggerConfig(final Supplier<LoggerConfig> next) { |
| LoggerConfig result = this.loggerConfig; |
| if (!beforeLogEvent()) { |
| result = next.get(); |
| return result.getReliabilityStrategy().getActiveLoggerConfig(next); |
| } |
| return result; |
| } |
| |
| private boolean beforeLogEvent() {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/appender/AbstractFileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/AbstractFileAppender.html#L161">161</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/appender/FileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/FileAppender.html#L258">258</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> final M manager, final String filename, final boolean ignoreExceptions, |
| final boolean immediateFlush, final Advertiser advertiser) { |
| |
| super(name, layout, filter, ignoreExceptions, immediateFlush, manager); |
| if (advertiser != null) { |
| final Map<String, String> configuration = new HashMap<>(layout.getContentFormat()); |
| configuration.putAll(manager.getContentFormat()); |
| configuration.put("contentType", layout.getContentType()); |
| configuration.put("name", name); |
| advertisement = advertiser.advertise(configuration); |
| } else { |
| advertisement = null; |
| } |
| this.fileName = filename; |
| this.advertiser = advertiser; |
| } |
| |
| /** |
| * Returns the file name this appender is associated with. |
| * @return The File name. |
| */ |
| public String getFileName() { |
| return this.fileName; |
| } |
| |
| @Override |
| public boolean stop(final long timeout, final TimeUnit timeUnit) { |
| setStopping(); |
| super.stop(timeout, timeUnit, false); |
| if (advertiser != null) { |
| advertiser.unadvertise(advertisement); |
| } |
| setStopped(); |
| return true; |
| } |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/async/RingBufferLogEvent.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/async/RingBufferLogEvent.html#L218">218</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/impl/MutableLogEvent.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/impl/MutableLogEvent.html#L236">236</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> : (message == null ? null : message.getFormattedMessage()); |
| } |
| |
| /** |
| * @see ReusableMessage#getFormat() |
| */ |
| @Override |
| public String getFormat() { |
| return null; |
| } |
| |
| /** |
| * @see ReusableMessage#getParameters() |
| */ |
| @Override |
| public Object[] getParameters() { |
| return parameters == null ? null : Arrays.copyOf(parameters, parameterCount); |
| } |
| |
| /** |
| * @see ReusableMessage#getThrowable() |
| */ |
| @Override |
| public Throwable getThrowable() { |
| return getThrown(); |
| } |
| |
| /** |
| * @see ReusableMessage#formatTo(StringBuilder) |
| */ |
| @Override |
| public void formatTo(final StringBuilder buffer) { |
| buffer.append(messageText); |
| } |
| |
| /** |
| * Replaces this ReusableMessage's parameter array with the specified value and return the original array |
| * @param emptyReplacement the parameter array that can be used for subsequent uses of this reusable message |
| * @return the original parameter array |
| * @see ReusableMessage#swapParameters(Object[]) |
| */ |
| @Override |
| public Object[] swapParameters(final Object[] emptyReplacement) { |
| final Object[] result = this.parameters; |
| this.parameters = emptyReplacement; |
| return result; |
| } |
| |
| /* |
| * @see ReusableMessage#getParameterCount |
| */ |
| @Override |
| public short getParameterCount() { |
| return parameterCount; |
| } |
| |
| @Override |
| public Message memento() { |
| if (message != null) { |
| return message; |
| } |
| final Object[] params = parameters == null ? new Object[0] : Arrays.copyOf(parameters, parameterCount); |
| return new ParameterizedMessage(messageText.toString(), params); |
| } |
| |
| // CharSequence impl |
| |
| @Override |
| public int length() {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/layout/MarkerPatternSelector.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/MarkerPatternSelector.html#L197">197</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/layout/ScriptPatternSelector.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/ScriptPatternSelector.html#L226">226</a></td></tr> |
| <tr class="b"><td colspan='2'> |
| <div> |
| <pre> final Builder builder = newBuilder(); |
| builder.setProperties(properties); |
| builder.setDefaultPattern(defaultPattern); |
| builder.setAlwaysWriteExceptions(alwaysWriteExceptions); |
| builder.setNoConsoleNoAnsi(noConsoleNoAnsi); |
| builder.setConfiguration(configuration); |
| return builder.build(); |
| } |
| |
| @Override |
| public String toString() { |
| final StringBuilder sb = new StringBuilder(); |
| boolean first = true; |
| for (final Map.Entry<String, String> entry : patternMap.entrySet()) { |
| if (!first) { |
| sb.append(", "); |
| } |
| sb.append("key=\"").append(entry.getKey()).append("\", pattern=\"").append(entry.getValue()).append("\""); |
| first = false; |
| } |
| if (!first) { |
| sb.append(", "); |
| } |
| sb.append("default=\"").append(defaultPattern).append("\""); |
| return sb.toString(); |
| } |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="a"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/filter/MapFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/MapFilter.html#L244">244</a></td></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/filter/StructuredDataFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/StructuredDataFilter.html#L164">164</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/filter/ThreadContextMapFilter.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/filter/ThreadContextMapFilter.html#L204">204</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> LOGGER.error("keys and values must be specified for the MapFilter"); |
| return null; |
| } |
| final Map<String, List<String>> map = new HashMap<>(); |
| for (final KeyValuePair pair : pairs) { |
| final String key = pair.getKey(); |
| if (key == null) { |
| LOGGER.error("A null key is not valid in MapFilter"); |
| continue; |
| } |
| final String value = pair.getValue(); |
| if (value == null) { |
| LOGGER.error("A null value for key " + key + " is not allowed in MapFilter"); |
| continue; |
| } |
| List<String> list = map.get(pair.getKey()); |
| if (list != null) { |
| list.add(value); |
| } else { |
| list = new ArrayList<>(); |
| list.add(value); |
| map.put(pair.getKey(), list); |
| } |
| } |
| if (map.isEmpty()) { |
| LOGGER.error("MapFilter is not configured with any valid key value pairs");</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.html#L192">192</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/appender/rolling/DirectWriteRolloverStrategy.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/rolling/DirectWriteRolloverStrategy.html#L115">115</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> return this; |
| } |
| |
| public String getCompressionLevelStr() { |
| return compressionLevelStr; |
| } |
| |
| /** |
| * Defines compression level. |
| * |
| * @param compressionLevelStr The compression level, 0 (less) through 9 (more); applies only to ZIP files. |
| * @return This builder for chaining convenience |
| */ |
| public Builder withCompressionLevelStr(final String compressionLevelStr) { |
| this.compressionLevelStr = compressionLevelStr; |
| return this; |
| } |
| |
| public Action[] getCustomActions() { |
| return customActions; |
| } |
| |
| /** |
| * Defines custom actions. |
| * |
| * @param customActions custom actions to perform asynchronously after rollover |
| * @return This builder for chaining convenience |
| */ |
| public Builder withCustomActions(final Action[] customActions) { |
| this.customActions = customActions; |
| return this; |
| } |
| |
| public boolean isStopCustomActionsOnError() { |
| return stopCustomActionsOnError; |
| } |
| |
| /** |
| * Defines whether to stop executing asynchronous actions if an error occurs. |
| * |
| * @param stopCustomActionsOnError whether to stop executing asynchronous actions if an error occurs |
| * @return This builder for chaining convenience |
| */ |
| public Builder withStopCustomActionsOnError(final boolean stopCustomActionsOnError) { |
| this.stopCustomActionsOnError = stopCustomActionsOnError; |
| return this; |
| } |
| |
| public String getTempCompressedFilePattern() { |
| return tempCompressedFilePattern; |
| } |
| |
| /** |
| * Defines temporary compression file pattern. |
| * |
| * @param tempCompressedFilePattern File pattern of the working file pattern used during compression, if null no temporary file are used |
| * @return This builder for chaining convenience |
| */ |
| public Builder withTempCompressedFilePattern(final String tempCompressedFilePattern) { |
| this.tempCompressedFilePattern = tempCompressedFilePattern; |
| return this; |
| } |
| |
| public Configuration getConfig() { |
| return config; |
| } |
| |
| /** |
| * Defines configuration. |
| * |
| * @param config The Configuration. |
| * @return This builder for chaining convenience |
| */ |
| public Builder withConfig(final Configuration config) { |
| this.config = config; |
| return this; |
| } |
| } |
| |
| @PluginBuilderFactory |
| public static Builder newBuilder() { |
| return new Builder(); |
| } |
| |
| /** |
| * Creates the DefaultRolloverStrategy. |
| * |
| * @param max The maximum number of files to keep. |
| * @param min The minimum number of files to keep. |
| * @param fileIndex If set to "max" (the default), files with a higher index will be newer than files with a smaller |
| * index. If set to "min", file renaming and the counter will follow the Fixed Window strategy. |
| * @param compressionLevelStr The compression level, 0 (less) through 9 (more); applies only to ZIP files. |
| * @param customActions custom actions to perform asynchronously after rollover |
| * @param stopCustomActionsOnError whether to stop executing asynchronous actions if an error occurs |
| * @param config The Configuration. |
| * @return A DefaultRolloverStrategy. |
| * @deprecated Since 2.9 Usage of Builder API is preferable |
| */ |
| @PluginFactory</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/async/AsyncLoggerConfigDefaultExceptionHandler.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/async/AsyncLoggerConfigDefaultExceptionHandler.html#L29">29</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/async/AsyncLoggerDefaultExceptionHandler.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/async/AsyncLoggerDefaultExceptionHandler.html#L27">27</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> final AsyncLoggerConfigDisruptor.Log4jEventWrapper event) { |
| final StringBuilder sb = new StringBuilder(512); |
| sb.append("AsyncLogger error handling event seq=").append(sequence).append(", value='"); |
| try { |
| sb.append(event); |
| } catch (final Exception ignored) { |
| sb.append("[ERROR calling ").append(event.getClass()).append(".toString(): "); |
| sb.append(ignored).append("]"); |
| } |
| sb.append("':"); |
| System.err.println(sb); |
| throwable.printStackTrace(); |
| } |
| |
| @Override |
| public void handleOnStartException(final Throwable throwable) { |
| System.err.println("AsyncLogger error starting:"); |
| throwable.printStackTrace(); |
| } |
| |
| @Override |
| public void handleOnShutdownException(final Throwable throwable) { |
| System.err.println("AsyncLogger error shutting down:"); |
| throwable.printStackTrace(); |
| } |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/jackson/ThrowableProxyMixIn.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/jackson/ThrowableProxyMixIn.html#L43">43</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/jackson/ThrowableProxyWithoutStacktraceMixIn.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/jackson/ThrowableProxyWithoutStacktraceMixIn.html#L40">40</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> private ExtendedStackTraceElement[] extendedStackTrace; |
| |
| @JsonProperty |
| @JacksonXmlProperty(isAttribute = true) |
| private String localizedMessage; |
| |
| @JsonProperty |
| @JacksonXmlProperty(isAttribute = true) |
| private String message; |
| |
| @JsonProperty |
| @JacksonXmlProperty(isAttribute = true) |
| private String name; |
| |
| @JsonIgnore |
| private transient Throwable throwable; |
| |
| @JsonIgnore |
| public abstract String getCauseStackTraceAsString(); |
| |
| @JsonIgnore |
| public abstract String getExtendedStackTraceAsString(); |
| |
| @JsonIgnore |
| public abstract StackTraceElement[] getStackTrace(); |
| |
| @JsonProperty(JsonConstants.ELT_SUPPRESSED) |
| @JacksonXmlElementWrapper(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_SUPPRESSED) |
| @JacksonXmlProperty(namespace = XmlConstants.XML_NAMESPACE, localName = XmlConstants.ELT_SUPPRESSED_ITEM) |
| public abstract ThrowableProxy[] getSuppressedProxies(); |
| |
| @JsonIgnore |
| public abstract String getSuppressedStackTrace(); |
| |
| @JsonIgnore |
| public abstract Throwable getThrowable(); |
| |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/layout/CsvLogEventLayout.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/CsvLogEventLayout.html#L53">53</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/layout/CsvParameterLayout.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/CsvParameterLayout.html#L62">62</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> public static CsvLogEventLayout createLayout( |
| // @formatter:off |
| @PluginConfiguration final Configuration config, |
| @PluginAttribute(value = "format", defaultString = DEFAULT_FORMAT) final String format, |
| @PluginAttribute("delimiter") final Character delimiter, |
| @PluginAttribute("escape") final Character escape, |
| @PluginAttribute("quote") final Character quote, |
| @PluginAttribute("quoteMode") final QuoteMode quoteMode, |
| @PluginAttribute("nullString") final String nullString, |
| @PluginAttribute("recordSeparator") final String recordSeparator, |
| @PluginAttribute(value = "charset", defaultString = DEFAULT_CHARSET) final Charset charset, |
| @PluginAttribute("header") final String header, |
| @PluginAttribute("footer") final String footer) |
| // @formatter:on |
| { |
| |
| final CSVFormat csvFormat = createFormat(format, delimiter, escape, quote, quoteMode, nullString, recordSeparator); |
| return new CsvLogEventLayout(config, charset, csvFormat, header, footer);</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.html#L45">45</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/config/DefaultReliabilityStrategy.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/config/DefaultReliabilityStrategy.html#L36">36</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> DEFAULT_SLEEP_MILLIS); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier, |
| * java.lang.String, java.lang.String, org.apache.logging.log4j.Marker, org.apache.logging.log4j.Level, |
| * org.apache.logging.log4j.message.Message, java.lang.Throwable) |
| */ |
| @Override |
| public void log(final Supplier<LoggerConfig> reconfigured, final String loggerName, final String fqcn, final Marker marker, final Level level, |
| final Message data, final Throwable t) { |
| loggerConfig.log(loggerName, fqcn, marker, level, data, t); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier, |
| * org.apache.logging.log4j.core.LogEvent) |
| */ |
| @Override |
| public void log(final Supplier<LoggerConfig> reconfigured, final LogEvent event) { |
| loggerConfig.log(event); |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeLogEvent(org.apache.logging.log4j.core.config. |
| * LoggerConfig, org.apache.logging.log4j.util.Supplier) |
| */ |
| @Override |
| public LoggerConfig getActiveLoggerConfig(final Supplier<LoggerConfig> next) { |
| return this.loggerConfig; |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#afterLogEvent() |
| */ |
| @Override |
| public void afterLogEvent() { |
| // no action |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeStopAppenders() |
| */ |
| @Override |
| public void beforeStopAppenders() { |
| // no action |
| } |
| |
| /* |
| * (non-Javadoc) |
| * |
| * @see |
| * org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeStopConfiguration(org.apache.logging.log4j.core |
| * .config.Configuration) |
| */ |
| @Override |
| public void beforeStopConfiguration(final Configuration configuration) {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/config/composite/CompositeConfiguration.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/config/composite/CompositeConfiguration.html#L85">85</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/config/xml/XmlConfiguration.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/config/xml/XmlConfiguration.html#L117">117</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> statusConfig.withStatus(value.toUpperCase()); |
| } else if ("dest".equalsIgnoreCase(key)) { |
| statusConfig.withDestination(value); |
| } else if ("shutdownHook".equalsIgnoreCase(key)) { |
| isShutdownHookEnabled = !"disable".equalsIgnoreCase(value); |
| } else if ("shutdownTimeout".equalsIgnoreCase(key)) { |
| shutdownTimeoutMillis = Long.parseLong(value); |
| } else if ("verbose".equalsIgnoreCase(key)) { |
| statusConfig.withVerbosity(value); |
| } else if ("packages".equalsIgnoreCase(key)) { |
| pluginPackages.addAll(Arrays.asList(value.split(Patterns.COMMA_SEPARATOR))); |
| } else if ("name".equalsIgnoreCase(key)) { |
| setName(value); |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/message/ExtendedThreadInformation.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/message/ExtendedThreadInformation.html#L115">115</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/message/ExtendedThreadInformation.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/message/ExtendedThreadInformation.html#L138">138</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> case WAITING: { |
| final StackTraceElement element = info.getStackTrace()[0]; |
| final String className = element.getClassName(); |
| final String method = element.getMethodName(); |
| if (className.equals("java.lang.Object") && method.equals("wait")) { |
| sb.append(" (on object monitor"); |
| if (info.getLockOwnerName() != null) { |
| sb.append(" owned by \""); |
| sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId()); |
| } |
| sb.append(')'); |
| } else if (className.equals("java.lang.Thread") && method.equals("join")) {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/config/json/JsonConfiguration.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/config/json/JsonConfiguration.html#L73">73</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/config/xml/XmlConfiguration.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/config/xml/XmlConfiguration.html#L113">113</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> for (final Map.Entry<String, String> entry : rootNode.getAttributes().entrySet()) { |
| final String key = entry.getKey(); |
| final String value = getStrSubstitutor().replace(entry.getValue()); |
| // TODO: this duplicates a lot of the XmlConfiguration constructor |
| if ("status".equalsIgnoreCase(key)) { |
| statusConfig.withStatus(value); |
| } else if ("dest".equalsIgnoreCase(key)) { |
| statusConfig.withDestination(value); |
| } else if ("shutdownHook".equalsIgnoreCase(key)) { |
| isShutdownHookEnabled = !"disable".equalsIgnoreCase(value); |
| } else if ("shutdownTimeout".equalsIgnoreCase(key)) { |
| shutdownTimeoutMillis = Long.parseLong(value); |
| } else if ("verbose".equalsIgnoreCase(entry.getKey())) {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/util/CronExpression.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/util/CronExpression.html#L1364">1364</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/util/CronExpression.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/util/CronExpression.html#L1455">1455</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> int daysToAdd = 0; |
| if (cDow < dow) { |
| daysToAdd = dow - cDow; |
| } |
| if (cDow > dow) { |
| daysToAdd = dow + (7 - cDow); |
| } |
| |
| final int lDay = getLastDayOfMonth(mon, cl.get(Calendar.YEAR)); |
| |
| if (day + daysToAdd > lDay) { // did we already miss the |
| // last one? |
| cl.set(Calendar.SECOND, 0); |
| cl.set(Calendar.MINUTE, 0); |
| cl.set(Calendar.HOUR_OF_DAY, 0); |
| cl.set(Calendar.DAY_OF_MONTH, 1); |
| cl.set(Calendar.MONTH, mon); |
| // no '- 1' here because we are promoting the month |
| continue; |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/util/CronExpression.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/util/CronExpression.html#L773">773</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/util/CronExpression.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/util/CronExpression.html#L799">799</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> if (i < s.length() && ((c = s.charAt(i)) == '/')) { |
| i++; |
| c = s.charAt(i); |
| final int v2 = Integer.parseInt(String.valueOf(c)); |
| i++; |
| if (i >= s.length()) { |
| addToSet(val, end, v2, type); |
| return i; |
| } |
| c = s.charAt(i); |
| if (c >= '0' && c <= '9') { |
| final ValueSet vs = getValue(v2, s, i); |
| final int v3 = vs.value; |
| addToSet(val, end, v3, type); |
| i = vs.pos; |
| return i; |
| } else {</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/appender/RollingFileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/RollingFileAppender.html#L122">122</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppender.html#L96">96</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> LOGGER.error("RollingFileAppender '{}': No TriggeringPolicy provided.", getName()); |
| return null; |
| } |
| |
| if (strategy == null) { |
| if (fileName != null) { |
| strategy = DefaultRolloverStrategy.newBuilder() |
| .withCompressionLevelStr(String.valueOf(Deflater.DEFAULT_COMPRESSION)) |
| .withConfig(getConfiguration()) |
| .build(); |
| } else { |
| strategy = DirectWriteRolloverStrategy.newBuilder() |
| .withCompressionLevelStr(String.valueOf(Deflater.DEFAULT_COMPRESSION)) |
| .withConfig(getConfiguration()) |
| .build(); |
| } |
| } else if (fileName == null && !(strategy instanceof DirectFileRolloverStrategy)) { |
| LOGGER.error("RollingFileAppender '{}': When no file name is provided a DirectFilenameRolloverStrategy must be configured"); |
| return null; |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.html#L571">571</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/appender/rolling/DirectWriteRolloverStrategy.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/appender/rolling/DirectWriteRolloverStrategy.html#L372">372</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> } |
| |
| if (compressAction != null && manager.isAttributeViewEnabled()) { |
| // Propagate posix attribute view to compressed file |
| // @formatter:off |
| final Action posixAttributeViewAction = PosixViewAttributeAction.newBuilder() |
| .withBasePath(compressedName) |
| .withFollowLinks(false) |
| .withMaxDepth(1) |
| .withPathConditions(new PathCondition[0]) |
| .withSubst(getStrSubstitutor()) |
| .withFilePermissions(manager.getFilePermissions()) |
| .withFileOwner(manager.getFileOwner()) |
| .withFileGroup(manager.getFileGroup()) |
| .build(); |
| // @formatter:on |
| compressAction = new CompositeAction(Arrays.asList(compressAction, posixAttributeViewAction), false); |
| } |
| |
| final FileRenameAction renameAction = new FileRenameAction(new File(currentFileName), new File(renameTo),</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/jackson/Log4jJsonModule.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/jackson/Log4jJsonModule.html#L39">39</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/jackson/Log4jYamlModule.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/jackson/Log4jYamlModule.html#L39">39</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> super(Log4jJsonModule.class.getName(), new Version(2, 0, 0, null, null, null)); |
| this.encodeThreadContextAsList = encodeThreadContextAsList; |
| this.includeStacktrace = includeStacktrace; |
| this.stacktraceAsString = stacktraceAsString; |
| // MUST init here. |
| // Calling this from setupModule is too late! |
| //noinspection ThisEscapedInObjectConstruction |
| new SimpleModuleInitializer().initialize(this); |
| } |
| |
| @Override |
| public void setupModule(final SetupContext context) { |
| // Calling super is a MUST! |
| super.setupModule(context); |
| if (encodeThreadContextAsList) { |
| new SetupContextInitializer().setupModule(context, includeStacktrace, stacktraceAsString); |
| } else { |
| new SetupContextJsonInitializer().setupModule(context, includeStacktrace, stacktraceAsString); |
| } |
| } |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/async/RingBufferLogEvent.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/async/RingBufferLogEvent.html#L122">122</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/impl/MutableLogEvent.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/impl/MutableLogEvent.html#L208">208</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> private void setMessage(final Message msg) { |
| if (msg instanceof ReusableMessage) { |
| final ReusableMessage reusable = (ReusableMessage) msg; |
| reusable.formatTo(getMessageTextForWriting()); |
| if (parameters != null) { |
| parameters = reusable.swapParameters(parameters); |
| parameterCount = reusable.getParameterCount(); |
| } |
| } else { |
| this.message = InternalAsyncUtil.makeMessageImmutable(msg); |
| } |
| } |
| |
| private StringBuilder getMessageTextForWriting() { |
| if (messageText == null) { |
| // Should never happen: |
| // only happens if user logs a custom reused message when Constants.ENABLE_THREADLOCALS is false |
| messageText = new StringBuilder(Constants.INITIAL_REUSABLE_MESSAGE_SIZE); |
| } |
| messageText.setLength(0); |
| return messageText; |
| }</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/layout/PatternLayout.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/PatternLayout.html#L332">332</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/layout/PatternLayout.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/layout/PatternLayout.html#L454">454</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> final int len = formatters.length; |
| for (int i = 0; i < len; i++) { |
| formatters[i].format(event, buffer); |
| } |
| if (replace != null) { // creates temporary objects |
| String str = buffer.toString(); |
| str = replace.format(str); |
| buffer.setLength(0); |
| buffer.append(str); |
| } |
| return buffer; |
| } |
| |
| @Override |
| public String toString() { |
| final StringBuilder builder = new StringBuilder(); |
| builder.append(super.toString()); |
| builder.append("[formatters=");</pre></div></td></tr></table> |
| <table border="0" class="bodyTable"> |
| <tr class="b"> |
| <th>File</th> |
| <th>Line</th></tr> |
| <tr class="a"> |
| <td>org/apache/logging/log4j/core/message/ExtendedThreadInformation.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/message/ExtendedThreadInformation.html#L125">125</a></td></tr> |
| <tr class="b"> |
| <td>org/apache/logging/log4j/core/message/ExtendedThreadInformation.java</td> |
| <td><a href="./xref/org/apache/logging/log4j/core/message/ExtendedThreadInformation.html#L150">150</a></td></tr> |
| <tr class="a"><td colspan='2'> |
| <div> |
| <pre> sb.append(')'); |
| } else if (className.equals("java.lang.Thread") && method.equals("join")) { |
| sb.append(" (on completion of thread ").append(info.getLockOwnerId()).append(')'); |
| } else { |
| sb.append(" (parking for lock"); |
| if (info.getLockOwnerName() != null) { |
| sb.append(" owned by \""); |
| sb.append(info.getLockOwnerName()).append("\" Id=").append(info.getLockOwnerId()); |
| } |
| sb.append(')'); |
| } |
| break; |
| }</pre></div></td></tr></table></div> |
| </td> |
| </tr> |
| </table> |
| </div> |
| |
| <div class="footer"> |
| <p>Copyright © 1999-2017 <a class="external" href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p> |
| <p>Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the Apache Logging project logo are trademarks of The Apache Software Foundation.</p> |
| <p>Site powered by <a class="external" href="http://getbootstrap.com/">Twitter Bootstrap</a>. Icons from <a class="external" href="http://glyphicons.com/">Glyphicons Free</a>.</p> |
| </div> |
| </div> |
| </body> |
| </html> |