type=page
status=published
title=create-audit-module
next=create-auth-realm.html
prev=create-application-ref.html
~~~~~~

= create-audit-module

[[create-audit-module-1]][[GSRFM00014]][[create-audit-module]]

== create-audit-module

Adds an audit module

[[sthref131]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-audit-module [--help]
--classname classname
[--property(name=value)[:name=value]*]
[--target target]
audit_module_name
----

[[sthref132]]

=== Description

The `create-audit-module` subcommand adds the named audit module for the
Java class that implements the audit capabilities. Audit modules collect
and store information on incoming requests (from, for example, servlets
and EJB components) and outgoing responses.

This subcommand is supported in remote mode only.

[[sthref133]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--classname`::
  The name of the Java class that implements this audit module. If not
  specified, this option defaults to
  `com.sun.enterprise.security.Audit`.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--property`::
  Optional keyword-value pairs that specify additional properties for
  the audit module. +
  Audit module properties that are defined by {productName} are as
  follows:

  `auditOn`;;
    If `true`, specifies that the audit module is loaded and called by
    the {productName} audit library at audit points.

+
Other available properties are determined by the implementation of the
  audit module.
`--target`::
  Specifies the target on which you are creating the audit module. Valid
  values are as follows:

  `server`;;
    Creates the audit module for the default server instance `server`
    and is the default value.
  configuration_name;;
    Creates the audit module for the named configuration.
  cluster_name;;
    Creates the audit module for every server instance in the cluster.
  instance_name;;
    Creates the audit module for a particular server instance.

[[sthref134]]

=== Operands

audit_module_name::
  The name of this audit module.

[[sthref135]]

=== Examples

[[GSRFM459]][[sthref136]]

==== Example 1   Creating an audit module

[source]
----
asadmin> create-audit-module
--classname com.sun.appserv.auditmodule
--property defaultuser=admin:Password=admin sampleAuditModule
Command create-audit-module executed successfully
----

[[sthref137]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref138]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:delete-audit-module.html#delete-audit-module-1[`delete-audit-module`(1)],
link:list-audit-modules.html#list-audit-modules-1[`list-audit-modules`(1)]


