Access Manager 支持远程日志记录。从而允许客户机应用程序(使用安装有 Access Manager SDK 的主机)在部署于远程计算机上的 Access Manager 实例中创建日志记录。采用以下任意方案均可启动远程日志记录:
当 Access Manager 实例的“命名服务”中的日志记录 URL 指向远程实例,并且在两者之间有已配置的信任关系时,日志将被写入远程 Access Manager 实例。
当根据远程 Access Manager 实例安装 Access Manager SDK,并且在 SDK 服务器上运行的客户机(或简单 Java 类)使用日志记录 API 时,日志将被写入远程 Access Manager 计算机。
当 Access Manager 代理使用日志记录 API 时。
登录到 Application Server 或 Web Server 的管理控制台并添加以下 JVM 选项:
java.util.logging.manager=com.sun.identity.log.LogManager
java.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties
有关 Application Server 管理控制台的详细信息,参见《Sun Java System Application Server Enterprise Edition 8.2 Administration Guide》。
有关 Web Server 管理控制台的详细信息,参见《Sun Java System Web Server 7.0 Administrator’s Guide》。
如果正在使用的 Java™ 2 Platform, Standard Edition 为 1.4 或更高版本,此操作需要通过调用以下命令行来完成:
java -cp /AccessManager-base /SUNWam/lib/am_logging.jar:/ AccessManager-base /SUNWam/lib/xercesImpl.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/jaas.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/servlet.jar:/ AccessManager-base /SUNWam/locale:/ AccessManager-base/SUNWam/lib/am_services.jar:/ AccessManager-base/SUNWam/lib/am_sdk.jar:/ AccessManager-base/SUNWam/lib/jss311.jar:/ AccessManager-base/SUNWam/lib:.
-Djava.util.logging.manager=com.sun.identity.log.LogManager
-Djava.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties
如果正在使用的 Java 2 Platform, Standard Edition 的版本低于 1.4,此操作需要通过调用以下命令行来完成:
java -Xbootclasspath/a:/ AccessManager-base /SUNWam/lib/jdk_logging.jar -cp /AccessManager-base /SUNWam/lib/am_logging.jar:/ AccessManager-base /SUNWam/lib/xercesImpl.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/jaas.jar:/ AccessManager-base /SUNWam/lib/xmlParserAPIs.jar:/ AccessManager-base /SUNWam/lib/servlet.jar:/ AccessManager-base /SUNWam/locale:/ AccessManager-base/SUNWam/lib/am_services.jar:/ AccessManager-base/SUNWam/lib/am_sdk.jar:/ AccessManager-base/SUNWam/lib/jss311.jar:/ AccessManager-base/SUNWam/lib:.
-Djava.util.logging.manager=com.sun.identity.log.LogManager
-Djava.util.logging.config.file=/ AccessManager-base /SUNwam/lib/LogConfig.properties
确保位于 AccessManager-base/SUNWam/lib 的 LogConfig.properties 中配置了以下参数:
iplanet-am-logging-remote-handler=com.sun.identity.
log.handlers.RemoteHandler
iplanet-am-logging-remote-formatter=com.sun.
identity.log.handlers.RemoteFormatter
iplanet-am-logging-remote-buffer-size=1
远程日志以日志记录数目为基础支持缓冲技术。该值根据记录数目定义日志缓冲区的大小。 缓冲区满后,将刷新所有已缓冲的记录到服务器。
iplanet-am-logging-buffer-time-in-seconds=3600
该值定义超时期限,可在其中调用日志缓冲区清理程序线程。
iplanet-am-logging-time-buffering-status=OFF
该值定义是否启用日志缓冲技术(和缓冲区清理程序线程)。默认情况下,此功能被关闭。
如果启用了基于计时器的缓冲 (iplanet-am-logging-time-buffering-status=ON),则当日志记录的数目达到在 iplanet-am-logging-remote-buffer-size 中指定的值或当超过计时器时间(超时时间在 iplanet-am-logging-buffer-time-in-seconds 中指定)时将刷新日志记录的缓冲区(转移到提供日志记录服务的 AM 服务器中)。如果在达到缓冲区大小之前发生计时器超时,则将发送包含在缓冲区中的记录。如果禁用远程日志记录基于计时器的缓冲,则缓冲区大小决定了何时刷新缓冲区。例如,如果缓冲区大小为 10 而应用程序只发送 7 个记录,则不会刷新缓冲区,也不会写入日志记录。如果应用程序终止,则将刷新缓冲区中的记录。
每当日志文件为空,安全日志记录便可能显示“验证失败”。这是由于创建的文件数量等于归档大小时,安全日志记录将从此归档并重新开始。在大部分实例中,可忽略此错误。一旦记录数等于归档大小,将不显示此错误。
如果配合 Client SDK 使用程序,则需要对 AMConfig.properties 文件中的以下属性进行相应设置:
com.iplanet.am.naming.url
com.sun.identityagents.app.username
com.iplanet.am.service.password
com.iplanet.am.server.protocol
com.iplanet.am.server.host
com.iplanet.am.server.port
参阅 /opt/SUNWam/war 目录中的 Client SDK 范例 README.clientsdk。它详细介绍了如何为 /opt/SUNWam/war/clientsdk-samples 目录生成 AMConfig.properties 和 make 文件。而这些文件供范例的 makefile 的编译和运行条目使用。