blob: 14ffe551146425a3dfa994376560087fdbd7f745 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>LogParser (Apache JMeter dist API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.jmeter.protocol.http.util.accesslog, interface: LogParser">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><b>Apache JMeter</b></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.jmeter.protocol.http.util.accesslog</a></div>
<h1 title="Interface LogParser" class="title">Interface LogParser</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="OrderPreservingLogParser.html" title="class in org.apache.jmeter.protocol.http.util.accesslog">OrderPreservingLogParser</a></code>, <code><a href="SharedTCLogParser.html" title="class in org.apache.jmeter.protocol.http.util.accesslog">SharedTCLogParser</a></code>, <code><a href="TCLogParser.html" title="class in org.apache.jmeter.protocol.http.util.accesslog">TCLogParser</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">LogParser</span></div>
<div class="block">Description:<br>
<br>
LogParser is the base interface for classes implementing concrete parse
logic. For an example of how to use the interface, look at the Tomcat access
log parser.
<p>
The original log parser was written in 2 hours to parse access logs. Since
then, the design and implementation has been rewritten from scratch several
times to make it more generic and extensible. The first version was hard
coded and written over the weekend.
</p></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#close()" class="member-name-link">close</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">close the any streams or readers.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#parseAndConfigure(int,org.apache.jmeter.testelement.TestElement)" class="member-name-link">parseAndConfigure</a><wbr>(int&nbsp;count,
<a href="../../../../testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a>&nbsp;el)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">the method will parse the given number of lines.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setFilter(org.apache.jmeter.protocol.http.util.accesslog.Filter)" class="member-name-link">setFilter</a><wbr>(<a href="Filter.html" title="interface in org.apache.jmeter.protocol.http.util.accesslog">Filter</a>&nbsp;filter)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">We allow for filters, so that users can simply point to an Access log
without having to clean it up.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setSourceFile(java.lang.String)" class="member-name-link">setSourceFile</a><wbr>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;source)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">The method is provided to make it easy to dynamically create new classes
using Class.newInstance().</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="close()">
<h3>close</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">close</span>()</div>
<div class="block">close the any streams or readers.</div>
</section>
</li>
<li>
<section class="detail" id="parseAndConfigure(int,org.apache.jmeter.testelement.TestElement)">
<h3>parseAndConfigure</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">parseAndConfigure</span><wbr><span class="parameters">(int&nbsp;count,
<a href="../../../../testelement/TestElement.html" title="interface in org.apache.jmeter.testelement">TestElement</a>&nbsp;el)</span></div>
<div class="block">the method will parse the given number of lines. Pass "-1" to parse the
entire file. If the end of the file is reached without parsing a line, a
0 is returned. If the method is subsequently called again, it will
restart parsing at the beginning.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>count</code> - max lines to parse, or <code>-1</code> for the entire file</dd>
<dd><code>el</code> - <a href="../../../../testelement/TestElement.html" title="interface in org.apache.jmeter.testelement"><code>TestElement</code></a> to read lines into</dd>
<dt>Returns:</dt>
<dd>number of lines parsed</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setFilter(org.apache.jmeter.protocol.http.util.accesslog.Filter)">
<h3>setFilter</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setFilter</span><wbr><span class="parameters">(<a href="Filter.html" title="interface in org.apache.jmeter.protocol.http.util.accesslog">Filter</a>&nbsp;filter)</span></div>
<div class="block">We allow for filters, so that users can simply point to an Access log
without having to clean it up. This makes it significantly easier and
reduces the amount of work. Plus I'm lazy, so going through a log file to
clean it up is a bit tedious. One example of this is using the filter to
exclude any log entry that has a 505 response code.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>filter</code> - <a href="Filter.html" title="interface in org.apache.jmeter.protocol.http.util.accesslog"><code>Filter</code></a> to use</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSourceFile(java.lang.String)">
<h3>setSourceFile</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setSourceFile</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;source)</span></div>
<div class="block">The method is provided to make it easy to dynamically create new classes
using Class.newInstance(). Then the access log file is set using this
method.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>source</code> - name of the access log file</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright © 1998-2022 Apache Software Foundation. All Rights Reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>