Oracle利用UTL_FILE记录日志功能

Oracle利用UTL_FILE记录日志功能

1.功能描述

采用UTL_FILE包的功能进行创建log文件以及输出log信息

2.关于UTL_FILE

Oracle提供的文件操作包UTL_FILE包中的UTL_FILE.FOPEN负责打开一个文件。

UTL_FILE.FOPEN(location in varchar2, filename in varchar2, open_mode in varchar2) return FILE_TYPE;

Location 是路径参数;
FILENAME 是文件名;
OPEN_MODE是打开模式,'R’是读文本,'W’是写文本,'A’是附加文本,参数不分大小写,如果指定’A’但是文件不存在,它会用’W’先创建出来,'W’有覆盖的功能;
其中的location并不能简单的指定为’D:\temp’等路径,要建立一个DIRECTORY变量并付给权限(必须以DBA身份登录):

create or replace directory D_OUTPUT as 'D:\TEMP';
grant read, write on directory D_OUTPUT to public;

注:如上述代码所示,在D盘需要手动创建命名为TEMP的文件夹,执行上述代码,并不会自动创建相关文件夹,上述代码在于定义,并赋予该定义的权限,此处是public

之后就可以用UTL_FILE包建立文件了:

FILE_HANDLE := UTL_FILE.FOPEN('D_OUTPUT', 'log.txt', 'A');

写文件以及关闭:

UTL_FILE.put_line(FILE_HANDLE, write_string); 
UTL_FILE.FCLOSE(FILE_HANDLE);

完整代码如下:

CREATE OR REPLACE Procedure log_write_Info (name_string In Varchar2,dispaly_string In Varchar2)
As
 FILE_HANDLE UTL_FILE.FILE_TYPE;
 pro_date date;
Begin
  select sysdate into pro_date from dual;
   FILE_HANDLE := UTL_FILE.FOPEN('D_OUTPUT', name_string||'-'||to_char(pro_date,'yyyy-mm-dd')||'-log.txt', 'A');
  UTL_FILE.put_line(FILE_HANDLE,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'--------'||dispaly_string); 
 
  UTL_FILE.FCLOSE(FILE_HANDLE);
End log_write_Info;

3.调用存储过程写日志

begin

   log_write_Info('调试','111');--procedure是存储过程名

end;

效果:

在这里插入图片描述

在这里插入图片描述

相关推荐

  1. .NET Core 日志记录功能详解

    2023-12-05 20:40:04       42 阅读
  2. 如何利用Gunicorn的日志记录监控Web应用

    2023-12-05 20:40:04       24 阅读
  3. 【Rust】使用日志记录利器flexi_logger

    2023-12-05 20:40:04       21 阅读
  4. oracle归档日志清理

    2023-12-05 20:40:04       40 阅读
  5. Oracle数据库日志文件

    2023-12-05 20:40:04       43 阅读
  6. Oracle 日志挖掘

    2023-12-05 20:40:04       39 阅读
  7. go日志记录

    2023-12-05 20:40:04       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-05 20:40:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-05 20:40:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-05 20:40:04       82 阅读
  4. Python语言-面向对象

    2023-12-05 20:40:04       91 阅读

热门阅读

  1. 初识Dockerfile

    2023-12-05 20:40:04       56 阅读
  2. Linux如何查看系统时间

    2023-12-05 20:40:04       55 阅读
  3. MySql之锁表、锁行解决方案

    2023-12-05 20:40:04       63 阅读
  4. Doccker常用的命令

    2023-12-05 20:40:04       62 阅读
  5. k8s学习

    2023-12-05 20:40:04       52 阅读
  6. xxl-job分布式定时任务

    2023-12-05 20:40:04       60 阅读
  7. SpringBoot整合Logback

    2023-12-05 20:40:04       51 阅读
  8. c++的文件读写

    2023-12-05 20:40:04       58 阅读
  9. 常用类与比较器

    2023-12-05 20:40:04       50 阅读
  10. Leetcode128.最长连续序列

    2023-12-05 20:40:04       51 阅读