<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Module mod_log_agent</TITLE>
</HEAD>

<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<BODY
 BGCOLOR="#FFFFFF"
 TEXT="#000000"
 LINK="#0000FF"
 VLINK="#000080"
 ALINK="#FF0000"
>
<!--#include virtual="header.html" -->
<H1 ALIGN="CENTER">Module mod_log_agent</H1>

This module is contained in the <CODE>mod_log_agent.c</CODE> file, and is not
compiled in by default. It provides for logging of the client user agents.
mod_log_agent is deprecated. Use <A HREF="mod_log_config.html">mod_log_config</A>
instead.

<UL>
<LI><A HREF="#agentlog">AgentLog</A>
</UL>
<HR>


<H2><A NAME="agentlog">AgentLog</A></H2>
<!--%plaintext &lt;?INDEX {\tt AgentLog} directive&gt; -->
<A
 HREF="directive-dict.html#Syntax"
 REL="Help"
><STRONG>Syntax:</STRONG></A> AgentLog <EM>file-pipe</EM><BR>
<A
 HREF="directive-dict.html#Default"
 REL="Help"
><STRONG>Default:</STRONG></A> <CODE>AgentLog logs/agent_log</CODE><BR>
<A
 HREF="directive-dict.html#Context"
 REL="Help"
><STRONG>Context:</STRONG></A> server config, virtual host<BR>
<A
 HREF="directive-dict.html#Status"
 REL="Help"
><STRONG>Status:</STRONG></A> Extension<BR>
<A
 HREF="directive-dict.html#Module"
 REL="Help"
><STRONG>Module:</STRONG></A> mod_log_agent<P>

The AgentLog directive sets the name of the file to which the server will
log the UserAgent header of incoming requests. <EM>File-pipe</EM> is one
of
<DL><DT>A filename
<DD>A filename relative to the <A HREF="core.html#serverroot">ServerRoot</A>.
<DT> `|' followed by a command
<DD>A program to receive the agent log information on its standard input.
Note the a new program will not be started for a VirtualHost if it inherits
the AgentLog from the main server.
</DL>
<STRONG>Security:</STRONG> if a program is used, then it will be
run under the user who started httpd. This will be root if the server
was started by root; be sure that the program is secure.<P>

<STRONG>Security:</STRONG> See the <A
HREF="../misc/security_tips.html">security tips</A> document for
details on why your security could be compromised if the directory
where logfiles are stored is writable by anyone other than the user
that starts the server.<P>

This directive is provided for compatibility with NCSA 1.4.<P>

<!--#include virtual="footer.html" -->
</BODY>
</HTML>

