<!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-04-28 -->
<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>Apache log4net &#x2013; Apache log4net: How To view logging events using Apache log4j Chainsaw - Apache log4net</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="author" content="Ron Grabowski" />
      <meta name="author" content="Nicko Cadell" />
    <meta name="Date-Revision-yyyymmdd" content="20170428" />
    <meta http-equiv="Content-Language" content="en" />
		<meta name="keywords" content="chainsaw log4net, log4net" />
				</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 log4net logo" /-->
		<div class="clear"></div>

		<div class="navbar">
			<div class="navbar-inner">
				<div class="container-fluid">
					<a class="brand" href="http://logging.apache.org/log4net/">Apache log4net &trade;</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="https://logging.apache.org/" class="external" target="_blank" title="Logging Services">Logging Services</a>
			</li>
					<li>
					
				
				<a href="https://github.com/apache/logging-log4net/" class="external" target="_blank" title="GitHub">GitHub</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 log4net</li>
																						<li class="none">
									<a href="../../index.html" title="About">About</a>
					</li>
 																<li class="none">
									<a href="../../download_log4net.cgi" title="Download">Download</a>
					</li>
 																<li class="none">
									<a href="../../release/release-notes.html" title="Release Notes">Release Notes</a>
					</li>
 																<li class="none">
									<a href="../../license.html" title="License">License</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-file"></i>Documentation</li>
																						<li class="none">
									<a href="../../release/features.html" title="Features">Features</a>
					</li>
 																<li class="none">
									<a href="../../release/framework-support.html" title="Supported Frameworks">Supported Frameworks</a>
					</li>
 																<li class="none">
									<a href="../../release/example-apps.html" title="Example Apps">Example Apps</a>
					</li>
 																<li class="none">
									<a href="../../release/config-examples.html" title="Config Examples">Config Examples</a>
					</li>
 																<li class="none">
									<a href="../../release/building.html" title="Building">Building</a>
					</li>
 																<li class="none">
									<a href="../../release/faq.html" title="FAQ">FAQ</a>
					</li>
 																<li class="none">
									<a href="../../release/howto/index.html" title="How Tos">How Tos</a>
					</li>
 																<li class="none">
									<a href="../../release/sdk/index.html" title="SDK Reference">SDK Reference</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-book"></i>Manual</li>
																						<li class="none">
									<a href="../../release/manual/introduction.html" title="Introduction">Introduction</a>
					</li>
 																<li class="none">
									<a href="../../release/manual/configuration.html" title="Configuration">Configuration</a>
					</li>
 																<li class="none">
									<a href="../../release/manual/contexts.html" title="Contexts">Contexts</a>
					</li>
 																<li class="none">
									<a href="../../release/manual/plugins.html" title="Plugins">Plugins</a>
					</li>
 																<li class="none">
									<a href="../../release/manual/repositories.html" title="Repositories">Repositories</a>
					</li>
 																<li class="none">
									<a href="../../release/manual/internals.html" title="Internals">Internals</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="../../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="../../source-repository.html" title="Repository">Repository</a>
					</li>
 																<li class="none">
									<a href="../../integration.html" title="Continuous Integration">Continuous Integration</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-cog"></i>Project Reports</li>
																						<li class="none">
									<a href="../../rat-report.html" title="RAT Report">RAT Report</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-info-sign"></i>Apache</li>
																						<li class="none">
					
				
				<a href="http://www.apache.org/" class="external" target="_blank" title="Home">Home</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apache.org/licenses/" class="external" target="_blank" title="License">License</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apache.org/foundation/sponsorship.html" class="external" target="_blank" title="Sponsorship">Sponsorship</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apache.org/foundation/thanks.html" class="external" target="_blank" title="Thanks">Thanks</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apache.org/security/" class="external" target="_blank" title="Security">Security</a>
					</li>
 																<li class="none">
					
				
				<a href="http://www.apachecon.com" class="external" target="_blank" title="Conferences">Conferences</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">
						<!-- 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. -->

    
        <a name="main"></a>
<div class="section" id="main">
<h2><a name="How_To_view_logging_events_using_Apache_log4j_Chainsaw"></a>How To view logging events using Apache log4j Chainsaw</h2>
            
<p>
                Apache log4j&#x2122; includes <a class="externalLink" href="http://logging.apache.org/log4j/docs/chainsaw.html">Apache Chainsaw&#x2122;</a>
                a graphical log viewer. 
            </p>
            
<p>
                Chainsaw can either receive and display log events in realtime over 
                the network, or it can load a previously created log file.
            </p>
            
            
<p>
                Before Chainsaw can display data, one or more receivers must be setup. 
                This is usually done by specifying an xml config file when the program 
                first starts up. <br />
                Save one or more of the sample xml config files to your local system and 
                load them when Chainsaw starts.
            </p>
			
			
<p>
				Please note also that it may be necessary to configure Chainsaw tabs as reported as
				issue <a class="externalLink" href="https://issues.apache.org/jira/browse/LOG4NET-259">LOG4NET-259</a>.
			</p>
            
            <a name="udp"></a>
<div class="section" id="udp">
<h2><a name="Logging_via_UDP"></a>Logging via UDP</h2>
                
<p>
                    Apache log4net&#x2122; can be configured to log messages via UDP in such a way that Chainsaw
                    can receive and display them.
                </p>
            
                <a name="udp-conf"></a>
<div class="section" id="udp-conf">
<h2><a name="log4net_UDP_Configuration"></a>log4net UDP Configuration</h2>
                    
<p>
                        Configure log4net to use a UdpAppender with the following config snippet:
                    </p>

                    
<div class="source">
<pre>
&lt;appender name=&quot;UdpAppender&quot; type=&quot;log4net.Appender.UdpAppender&quot;&gt;
    &lt;remoteAddress value=&quot;127.0.0.1&quot; /&gt;
    &lt;remotePort value=&quot;8080&quot; /&gt;
    &lt;layout type=&quot;log4net.Layout.XmlLayoutSchemaLog4j&quot;&gt;
        &lt;locationInfo value=&quot;true&quot; /&gt;
    &lt;/layout&gt;
&lt;/appender&gt;</pre></div>
                </div>
                
                <a name="udp-chainsaw"></a>
<div class="section" id="udp-chainsaw">
<h2><a name="Chainsaw_UDP_receiver_Configuration"></a>Chainsaw UDP receiver Configuration</h2>
                    
<p>
                        Chainsaw should be configured to start a UDPReceiver using the 
                        following configuration document:
                    </p>

                    
<div class="source">
<pre>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;!DOCTYPE log4j:configuration SYSTEM &quot;log4j.dtd&quot;&gt; 
&lt;log4j:configuration xmlns:log4j=&quot;http://jakarta.apache.org/log4j/&quot; debug=&quot;true&quot;&gt;    
    &lt;plugin name=&quot;UDPReceiver&quot; class=&quot;org.apache.log4j.net.UDPReceiver&quot;&gt;
        &lt;param name=&quot;Port&quot; value=&quot;8080&quot; /&gt;
    &lt;/plugin&gt;    
&lt;/log4j:configuration&gt;</pre></div>
                </div>
                
            </div>
            
            <a name="xml-file"></a>
<div class="section" id="xml-file">
<h2><a name="Logging_to_XML_file"></a>Logging to XML file</h2>
                
<p>
                    Chainsaw can also load an XML log file if it is formatted according
                    to the log4j schema. Use the following log4net config to output
                    to file using the log4j schema:
                </p>
                
                
<div class="source">
<pre>
&lt;appender name=&quot;FileAppender&quot; type=&quot;log4net.Appender.FileAppender&quot;&gt;
    &lt;file value=&quot;log-file.txt&quot; /&gt;
    &lt;appendToFile value=&quot;true&quot; /&gt;
    &lt;layout type=&quot;log4net.Layout.XmlLayoutSchemaLog4j&quot;&gt;
        &lt;locationInfo value=&quot;true&quot; /&gt;
    &lt;/layout&gt;
&lt;/appender&gt;</pre></div>
                
                
<p>
                    To load the file into Chainsaw drag the file into the Chainsaw
                    app and drop it on the tab labeled <i>Drag &amp; Drop log files here</i>.
                </p>        
            </div>
            
        </div>
    

					</td>
				</tr>
			</table>
		</div>

		<div class="footer">
							<p>Copyright &copy; 2004-2017 <a class="external" href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.</p>
				<p>Apache log4net, Apache, log4net, the Apache feather logo, the Apache Logging Services project logo and the Built by Maven 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>
