如何在Oracle的报警日志添加自定义的消息

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Oracle把所有的主要系统消息都写入Oracle报警日志里。要为所有的Oracle 系统消息创建唯一的一个存放地点,Oracle 专业人士必须学会一种方法来把应用程序的消息写入到报警日志里去。

把所有的Oracle消息集中起来(不管是系统消息还是应用程序消息)确实能够简化数据库的治理,因为所有与Oracle相关的报警消息都存放在一个集中的文件里。

Oracle DBA可以创建一个全局的PL/SQL存储过程来处理与报警日志文件的交互过程,然后他们调用这个全局软件包,将合适的消息传递给这个存储过程。下面是这种调用的一个例子:

when others then

dbms_custom.write_alert

(:p_sysdate' Application error':var1' encountered');

要完成写的过程,你可以使用Oracle的UTL_FILE 包,它答应Oracle SQL 和PL/SQL 直接从服务器的文本文件进行读写。

要向Oracle 报警日志写入自定义的消息,应该遵循下面的步骤:

1. 找到后台转储路径(报警日志的位置)。

2. 设置UTL_FILE_DIR 初始化参数。

3. 执行UTL_FILE.FOPEN打开文件进行写访问。

4. 使用DBMS_OUTPUT.PUT_LINE向报警日志写入自定义的消息。

5. 执行UTL_FILE.FCLOSE来关闭文件。

下面是一个Oracle9i的程序例子:

-- ******************************************************

-- 取得报警日志文件的路径

-- ******************************************************

select

name into :alert_loc

from

v$parameter

where

name = 'background_dump_destination';

-- ******************************************************

--设置utl_file_dir

-- (在Oracle9i 以前,你必须返回数据库)

-- ******************************************************

alter system set utl_file_dir = ':alert_log');

-- ******************************************************

--打开报警文件进行写操作

-- ******************************************************

utl_file.fopen(':alert_loc','alertprod.log','W');

-- ******************************************************

--将自定义的消息写入报警日志文件里

-- ******************************************************

dbms_output.put_line('invalid_application_error');

-- ******************************************************

--关闭报警日志文件

-- ******************************************************

utl_file.fclose(':alert_loc');

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航