<!--

    Copyright (c) 2005, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<p><a id="task-auditmoduleedit" name="task-auditmoduleedit"></a><a id="GHCOM00195" name="GHCOM00195"></a></p>

<h4><a id="sthref93" name="sthref93"></a>To Edit an Audit Module</h4>
<a name="BEGIN" id="BEGIN"></a>
<p>Audit modules are not turned on by default. For more information on how to activate audit modules, see <a href="task-enabledisableauditmod.html">To Enable or Disable Audit Logging</a>.</p>
<ol>
<li>
<p>In the navigation tree, expand the Configuration node.</p>
</li>
<li>
<p>Select the instance to configure:</p>
<ul>
<li>
<p>To configure a particular instance, expand the instance's config node. For example, the default instance, <code>server</code>, expand the <code>server-config</code> node.</p>
</li>
<li>
<p>To configure the default settings for all instances, expand the <code>default-config</code> node.</p>
</li>
</ul>
</li>
<li>
<p>Under the Configuration node, expand the Security node.</p>
</li>
<li>
<p>Under the Security node, select the Audit Modules node.</p>
<p>The Audit Modules page opens.</p>
</li>
<li>
<p>On the Audit Modules page, click the name of the audit module that you are editing.</p>
<p>The Edit Audit Module page opens.</p>
</li>
<li>
<p>On the Edit Audit Module page, type a new value in the Class Name field to modify the class name.</p>
</li>
<li>
<p>In the Additional Properties section, specify additional properties.</p>
<p>For a description of the additional property that is available for audit modules, see <a href="ref-auditmoduleprop.html">Properties Specific to Audit Modules</a>.</p>
<ul>
<li>
<p>To add a property, click the Add Property button. In the blank row that appears, type the property name in the Name field, and type the property value in the Value field.</p>
</li>
<li>
<p>To modify a property, edit that property's Value field.</p>
</li>
<li>
<p>To delete a property, select the checkbox to the left of the Name field of the property that you are deleting, then click the Delete Properties button.</p>
</li>
</ul>
</li>
<li>
<p>Click Save.</p>
</li>
</ol>
<a id="GHCOM298" name="GHCOM298"></a>
<h5>See Also</h5>
<ul>
<li>
<p><a href="task-auditmodulenew.html">To Create an Audit Module</a></p>
</li>
<li>
<p><a href="task-auditmoduledelete.html">To Delete an Audit Module</a></p>
</li>
<li>
<p><a href="task-enabledisableauditmod.html">To Enable or Disable Audit Logging</a></p>
</li>
<li>
<p><a href="task-setactiveauditmod.html">To Set the Active Audit Module</a></p>
</li>
<li>
<p><a href="task-usedefaultauditmod.html">To Use the Default Audit Module</a></p>
</li>
</ul>


<small>Copyright &#169; 2005, 2017, Oracle and/or its affiliates. All rights reserved. <a href="docinfo.html">Legal Notices</a></small>
