<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Feb 18, 2012 -->
<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>
		LoggerAppenderPDO - Apache log4php</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="20120218" />
		<meta http-equiv="Content-Language" content="en" />
		
					<!-- Google Analytics -->
		<script type="text/javascript">
		
			var _gaq = _gaq || [];
			_gaq.push(['_setAccount', 'UA-26177991-1']);
			_gaq.push (['_gat._anonymizeIp']);
			_gaq.push(['_trackPageview']);

			(function() {
				var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
				ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
				var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
			})();

		</script>
		</head>
	<body class="composite">
 
		<div class="navbar">
			<div class="navbar-inner">
				<div class="container-fluid">
					<a class="brand" href="#">Apache log4php &trade;</a>
						<ul class="nav">
						<li>
									<a href="../../index.html" title="About">About</a>
			</li>
					<li>
									<a href="../../download.html" title="Download">Download</a>
			</li>
					<li>
									<a href="../../install.html" title="Install">Install</a>
			</li>
					<li>
									<a href="../../quickstart.html" title="Quick start">Quick start</a>
			</li>
		</ul>

					<!-- Twitter link -->
					<ul class="nav pull-right">
						<li><a href="http://twitter.com/log4php/" class="externalLink">Follow <strong>@log4php</strong></a></li>
					</ul>
					
					<!-- Google CSE Search Box -->
					<form class="navbar-search pull-right" id="cref" action="http://www.google.com/cse">
						<input type="hidden" name="cref" value="http://logging.apache.org/log4php/cse.xml" />
						<input class="search-query pull-left" type="text" name="q" size="40" placeholder="Search" />
					</form>
				</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 log4php™</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="none">
								<a href="../../install.html" title="Install">Install</a>
			</li>
										<li class="none">
								<a href="../../changelog.html" title="Changelog">Changelog</a>
			</li>
							</ul>
			<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-book"></i>Documentation</li>
																	<li class="none">
								<a href="../../quickstart.html" title="Quick start">Quick start</a>
			</li>
										<li class="none">
								<a href="../../docs/introduction.html" title="Introduction">Introduction</a>
			</li>
										<li class="none">
								<a href="../../docs/configuration.html" title="Configuration">Configuration</a>
			</li>
										<li class="none">
								<a href="../../docs/loggers.html" title="Loggers">Loggers</a>
			</li>
																																																																																																																																																				<li class="expanded">
								<a href="../../docs/appenders.html" title="Appenders">Appenders</a>
							<ul>
												<li class="none">
								<a href="../../docs/appenders/console.html" title="LoggerAppenderConsole">LoggerAppenderConsole</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/daily-file.html" title="LoggerAppenderDailyFile">LoggerAppenderDailyFile</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/echo.html" title="LoggerAppenderEcho">LoggerAppenderEcho</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/file.html" title="LoggerAppenderFile">LoggerAppenderFile</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/mail.html" title="LoggerAppenderMail">LoggerAppenderMail</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/mail-event.html" title="LoggerAppenderMailEvent">LoggerAppenderMailEvent</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/mongodb.html" title="LoggerAppenderMongoDB">LoggerAppenderMongoDB</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/null.html" title="LoggerAppenderNull">LoggerAppenderNull</a>
			</li>
													<li class="none active">
								<a href="../../docs/appenders/pdo.html" title="LoggerAppenderPDO">LoggerAppenderPDO</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/php.html" title="LoggerAppenderPHP">LoggerAppenderPHP</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/rolling-file.html" title="LoggerAppenderRollingFile">LoggerAppenderRollingFile</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/socket.html" title="LoggerAppenderSocket">LoggerAppenderSocket</a>
			</li>
												<li class="none">
								<a href="../../docs/appenders/syslog.html" title="LoggerAppenderSyslog">LoggerAppenderSyslog</a>
			</li>
							</ul>
				</li>
																																																																																<li class="collapsed">
								<a href="../../docs/layouts.html" title="Layouts">Layouts</a>
						</li>
										<li class="none">
								<a href="../../docs/filters.html" title="Filters">Filters</a>
			</li>
										<li class="none">
								<a href="../../docs/renderers.html" title="Renderers">Renderers</a>
			</li>
										<li class="none">
								<a href="../../apidocs/index.html" title="API documentation">API documentation</a>
			</li>
							</ul>
			<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-user"></i>Community</li>
																	<li class="none">
								<a href="../../volunteering.html" title="Volunteering">Volunteering</a>
			</li>
										<li class="none">
								<a href="../../contributingpatches.html" title="Contributing Patches">Contributing Patches</a>
			</li>
										<li class="none">
						
						
				<a href="http://wiki.apache.org/logging-log4php" class="externalLink" target="_blank" title="Wiki">Wiki</a>
			</li>
										<li class="none">
						
						
				<a href="http://blogs.apache.org/logging/" class="externalLink" target="_blank" title="Blog">Blog</a>
			</li>
							</ul>
			<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-info-sign"></i>Project Information</li>
																	<li class="none">
								<a href="../../integration.html" title="Continuous Integration">Continuous Integration</a>
			</li>
										<li class="none">
								<a href="../../source-repository.html" title="Source Repository">Source Repository</a>
			</li>
										<li class="none">
								<a href="../../dependencies.html" title="Dependencies">Dependencies</a>
			</li>
										<li class="none">
								<a href="../../license.html" title="Project License">Project License</a>
			</li>
										<li class="none">
								<a href="../../team-list.html" title="Project Team">Project Team</a>
			</li>
										<li class="none">
								<a href="../../issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
			</li>
										<li class="none">
								<a href="../../mail-lists.html" title="Mailing Lists">Mailing Lists</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="../../changes-report.html" title="Changes Report">Changes 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>
										<li class="none">
								<a href="../../coverage-report/index.html" title="Code Coverage">Code Coverage</a>
			</li>
							</ul>
			<ul class="nav nav-list">
								 <li class="nav-header"><i class="icon-heart"></i>Apache</li>
																	<li class="none">
						
						
				<a href="http://www.apache.org" class="externalLink" target="_blank" title="Home">Home</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" target="_blank" title="Sponsorship">Sponsorship</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/licenses/" class="externalLink" target="_blank" title="License">License</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/foundation/thanks.html" class="externalLink" target="_blank" title="Thanks">Thanks</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apachecon.com" class="externalLink" target="_blank" title="Conferences">Conferences</a>
			</li>
										<li class="none">
						
						
				<a href="http://www.apache.org/security/" class="externalLink" target="_blank" title="Security">Security</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/logos/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. -->

	
		<div class="section"><h2>LoggerAppenderPDO<a name="LoggerAppenderPDO"></a></h2>
		
			<p><tt>LoggerAppenderPDO</tt> appender logs to a database using the PHP's 
			<a class="externalLink" href="http://php.net/manual/en/book.pdo.php" target="_blank">PDO extension</a>.</p>
		
			<div class="section"><h3>Layout<a name="Layout"></a></h3>
				<p>This appender does not require a layout.</p>
			</div>
		
			<div class="section"><h3>Parameters<a name="Parameters"></a></h3>
				<p>The following parameters are available:</p>
		
				<table border="0" class="bodyTable">
					<thead>
						<tr class="a">
							<th>Parameter</th>
							<th>Type</th>
							<th>Required</th>
							<th>Default</th>
							<th>Description</th>
						</tr>
					</thead>
					<tbody>
						<tr class="b">
							<td>dsn</td>
							<td>string</td>
							<td><b>Yes</b></td>
							<td>-</td>
							<td>The Data Source Name (DSN) used to connect to the database.</td>
						</tr>
						<tr class="a">
							<td>user</td>
							<td>string</td>
							<td><b>Yes</b></td>
							<td>-</td>
							<td>Username used to connect to the database.</td>
						</tr>
						<tr class="b">
							<td>password</td>
							<td>string</td>
							<td><b>Yes</b></td>
							<td>-</td>
							<td>Password used to connect to the database.</td>
						</tr>
						<tr class="a">
							<td>createTable</td>
							<td>boolean</td>
							<td>No</td>
							<td>true</td>
							<td>If set to true, the table will be created if it doesn't exist.</td>
						</tr>
						<tr class="b">
							<td>table</td>
							<td>string</td>
							<td>No</td>
							<td>-</td>
							<td>Name of the table to which log entries are be inserted.</td>
						</tr>
						<tr class="a">
							<td>insertSql</td>
							<td>string</td>
							<td>No</td>
							<td><i><a href="#Advanced_configuration">see below</a></i></td>
							<td>SQL query used to insert a log event.</td>
						</tr>
						<tr class="b">
							<td>insertPattern</td>
							<td>string</td>
							<td>No</td>
							<td><i><a href="#Advanced_configuration">see below</a></i></td>
							<td>A comma separated list of format strings used in conjunction with <tt>insertSql</tt> parameter.</td>
						</tr>
					</tbody>
				</table>
				
				<p>Parameters <tt>dsn</tt>, <tt>user</tt> and <tt>password</tt> are used by PDO to connect to 
				the database which will be used for logging. For available database drivers and corresponding DSN format, 
				please see the <a class="externalLink" href="http://www.php.net/manual/en/pdo.drivers.php" target="_blank">PDO driver documentation</a>.</p>

			</div>
			
			<a name="Advanced_configuration"></a><div class="section"><h3 id="Advanced_configuration">Advanced configuration</h3>
				<p>Parameters <tt>insertSql</tt> and <tt>insertPattern</tt> can be used to change how events are 
				inserted into the database. By manipulating them, it is possible to use a custom table structure to 
				suit your needs.</p>
			
				<p class="alert alert-warning"><b>WARNING:</b> Change these settings only if you are sure you
				know what you are doing.</p>
			
				<p>The default values of these parameters are:</p>
				
				<table border="0" class="bodyTable">
					<thead>
						<tr class="a">
							<th>Parameter</th>
							<th>Default value</th>
						</tr>
					</thead>
					<tbody>
						<tr class="b">
							<td>insertSql</td>
							<td>INSERT INTO __TABLE__ (timestamp, logger, level, message, thread, file, line) VALUES (?, ?, ?, ?, ?, ?, ?)</td>
						</tr>
						<tr class="a">
							<td>insertPattern</td>
							<td>%d,%c,%p,%m,%t,%F,%L</td>
						</tr>
					</tbody>
				</table>
			
				<p>The string <i>__TABLE__</i> in <tt>insertSql</tt> will be replaced with the table name 
				defined in <tt>table</tt>. Question marks in <tt>insertSql</tt> will be replaced by evaluated 
				<tt><a href="../layouts/pattern.html">LoggerPatternLayout</a></tt> format strings defined in 
				<tt>insertPattern</tt>. See <tt><a href="../layouts/pattern.html">LoggerPatternLayout</a></tt>
				documentation for format string description.</p>
			
			</div>
			
				
			<div class="section"><h3>Examples<a name="Examples"></a></h3>
			
				<div class="section"><h4>Example 1<a name="Example_1"></a></h4>
			
				<p>The simplest example is connecting to an SQLite database which does not require any 
				authentication.</p> 
				
				<p>SQLite databases are contained in simple files and don't reuquire a server to run. This example will
				log to the database contained in <tt>/var/log/log.sqlite</tt>. The database will be created if it 
				doesn't already exist.</p>
				
				<div class="auto-tabs">
					<ul>
						<li>XML</li>
						<li>PHP</li>
					</ul>
 
					<div class="tab-content">
						<div class="tab-pane">
<div class="prettyprint"><pre>
&lt;configuration xmlns=&quot;http://logging.apache.org/log4php/&quot;&gt;
    &lt;appender name=&quot;default&quot; class=&quot;LoggerAppenderPDO&quot;&gt;
        &lt;param name=&quot;dsn&quot; value=&quot;sqlite:/var/log/log.sqlite&quot; /&gt;
    &lt;/appender&gt;
    &lt;root&gt;
        &lt;appender_ref ref=&quot;default&quot; /&gt;
    &lt;/root&gt;
&lt;/configuration&gt;
</pre></div>
						</div>
						<div class="tab-pane">
<div class="prettyprint"><pre>
array(
    'appenders' =&gt; array(
        'default' =&gt; array(
            'class' =&gt; 'LoggerAppenderPDO',
            'params' =&gt; array(
                'dsn' =&gt; 'sqlite:/var/log/log.sqlite',
            ),
        ),
    ),
    'rootLogger' =&gt; array(
        'appenders' =&gt; array('default'),
    ),
);
</pre></div>
						</div>
					</div>
				</div>
				
				</div><div class="section"><h4>Example 2<a name="Example_2"></a></h4>

				<p>A slightly more complex example is connecting to a MySQL database which requires user credentials
				to be provided. Additionally, a user-specified table name is used.</p>
				
				<p>For this example, MySQL server needs to be running on localhost, and needs to contain a database
				named <tt>logdb</tt>. The log will be written to a table named <tt>log_table</tt>. The table
				will be created if it doesn't already exist.</p>

				<div class="auto-tabs">
					<ul>
						<li>XML</li>
						<li>PHP</li>
					</ul>
 
					<div class="tab-content">
						<div class="tab-pane">
<div class="prettyprint"><pre>
&lt;configuration xmlns=&quot;http://logging.apache.org/log4php/&quot;&gt;
    &lt;appender name=&quot;default&quot; class=&quot;LoggerAppenderPDO&quot;&gt;
        &lt;param name=&quot;dsn&quot; value=&quot;mysql:host=localhost;dbname=logdb&quot; /&gt;
        &lt;param name=&quot;user&quot; value=&quot;root&quot; /&gt;
        &lt;param name=&quot;password&quot; value=&quot;secret&quot; /&gt;
        &lt;param name=&quot;table&quot; value=&quot;log_table&quot; /&gt;
    &lt;/appender&gt;
    &lt;root&gt;
        &lt;appender_ref ref=&quot;default&quot; /&gt;
    &lt;/root&gt;
&lt;/configuration&gt;
</pre></div>
						</div>
						<div class="tab-pane">
<div class="prettyprint"><pre>
array(
    'appenders' =&gt; array(
        'default' =&gt; array(
            'class' =&gt; 'LoggerAppenderPDO',
            'params' =&gt; array(
                'dsn' =&gt; 'mysql:host=localhost;dbname=logdb',
                'user' =&gt; 'root',
                'password' =&gt; 'secret',
                'table' =&gt; 'log_table',
            ),
        ),
    ),
    'rootLogger' =&gt; array(
        'appenders' =&gt; array('default'),
    ),
);
</pre></div>
						</div>
					</div>
				</div>
					
				<p>This is an output sample retrieved from the MySQL database.</p>
				
<div><pre>
    mysql&gt; desc log_table;
+-----------+---------------+------+-----+---------+-------+
| Field     | Type          | Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
| timestamp | varchar(32)   | YES  |     | NULL    |       |
| logger    | varchar(64)   | YES  |     | NULL    |       |
| level     | varchar(32)   | YES  |     | NULL    |       |
| message   | varchar(9999) | YES  |     | NULL    |       |
| thread    | varchar(32)   | YES  |     | NULL    |       |
| file      | varchar(255)  | YES  |     | NULL    |       |
| line      | varchar(6)    | YES  |     | NULL    |       |
+-----------+---------------+------+-----+---------+-------+

    mysql&gt; SELECT * FROM log_table;
 +-------------------------+--------+-------+--------------+--------+--------------+------+
 | timestamp               | logger | level | message      | thread | file         | line |
 +-------------------------+--------+-------+--------------+--------+--------------+------+
 | 2011-10-02 19:36:07,935 | main   | INFO  | Hello World! | 21858  | /tmp/log.php | 24   |
 +-------------------------+--------+-------+--------------+--------+--------------+------+
</pre></div> 
				
			</div></div>
		</div>
	

					</td>
				</tr>
			</table>
		</div>
			
		<div class="footer">
			<p>Copyright &#169;										2012
												<a href="http://www.apache.org">Apache Software Foundation</a>.
						All Rights Reserved.			
				
				Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License, Version 2.0</a>. 
			Please read the <a href="../../privacy.html">Privacy policy</a></p>
			<p>Apache log4php, Apache, log4php, the Apache feather logo, the Apache Logging Services project logo and the Built by 
			Maven logo are trademarks of The Apache Software Foundation.</p>
		</div>
	</body>
</html>
