⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logmon.rxl

📁 Software Testing Automation Framework (STAF)的开发代码
💻 RXL
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************//* Software Testing Automation Framework (STAF)                              *//* (C) Copyright IBM Corp. 2001                                              *//*                                                                           *//* This software is licensed under the Common Public License (CPL) V1.0.     *//*****************************************************************************//******************************************************************************//* Common functions for the STAF Log, Remote Log, and Monitor programs        *//* Version: 1.00                                                              *//******************************************************************************/#Function All#From LogMon Import ManageDir FileStatus STAFAbort STAFExit#From LogMon Import LogMonErrorText ConvertSeconds ExpandLevel ResolveLevel#From LogMon Import ResolveVariable InitializeLogOption DisplayOldVarErrorMessage#End/******************************************************************************//* ManageDir - If directory does not exist, then create it, one level at a    *//*   time.  If e:\a\b\c\d is passed, creates e:\a, e:\a\b, e:\a\b\c, and      *//*   finally e:\a\b\c\d                                                       *//* Arguments: directory delimiter                                             *//* Returns  : status                                                          */*******************************************************************************/#Function ManageDirManageDir:  parse arg MD_dir, MD_delimit  MD_partdir = ''  MD_sep = ''  MD_totlen = dbwidth(MD_dir)  MD_rc = 0  if pos(":",MD_dir) = 0 then               /* Make sure a drive is specified */  do    MD_rc = errorDrive    errorBuffer = errorDrive.!text  end  else  do while MD_dir > ''    MD_endloc = pos(MD_delimit,MD_dir)    if MD_endloc > 0 then MD_endloc = MD_endloc -1    else MD_endloc = MD_totlen    MD_partdir = MD_partdir || MD_sep || substr(MD_dir,1,MD_endloc)    MD_rc = SysFileTree(MD_partdir,MD_stem,D)    if pos(MD_delimit,MD_partdir) > 0 then do      if MD_stem.0 = 0 then MD_rc = SysMkDir(MD_partdir)        /* Create dir */      if MD_rc > 0 then do        MD_rc = errorMakeDir        errorBuffer = errorMakeDir.!text || MD_partdir        leave      end    end    MD_dir = substr(MD_dir,MD_endloc + 2)    MD_sep = MD_delimit  endRETURN MD_rc#End/******************************************************************************//* FileStatus - Check the status of a file (complete path)                    *//* Arguments: file    - name of file to open                                  *//*            maxwait - retry count, < 1 or > 30 defaults to 5                *//*            openfor - read, write, null/anything else is read/write         *//* Returns  : 0 if file exists and is READY                                   *//*            1 if file does not exist                                        *//*            2 if file exists but is not READY                               */*******************************************************************************/#Function FileStatusFileStatus:  parse arg FS_file, FS_maxwait, FS_openfor  FS_status = ''  FS_rc = 0  FS_openfor = translate(FS_openfor)  if FS_openfor = "READ" then FS_openfor = "open read"  else    if FS_openfor = "WRITE" then FS_openfor = "open write"    else FS_openfor = "open"  call SysFileTree FS_file, FS_stem, 'F'              /* Check if file exists */  if FS_stem.0 = 0 then do                                  /* File not found */    FS_rc = 1    errorBuffer = STAFError.!FileOpenError.!text || lineSep || FS_file  end  else                                     /* File exists, see if it is READY */  do    do FS_maxwait                       /* Repeat maxwait times or file READY */      FS_status = stream(FS_file, "c", FS_openfor)      if FS_status = "READY:" then leave                        /* File READY */      call SysSleep 1    end    if FS_status \= "READY:" then    do      FS_rc = 2      errorBuffer = "File not READY: " || lineSep || FS_file    end  endRETURN FS_rc#End/******************************************************************************//* STAFEXIT - Exit from program.                                              *//* Arguments: exit string                                                     *//* Returns  : none                                                            *//******************************************************************************/#Function STAFExitSTAFExit:  parse arg SE_return_string  if infile > '' then call stream infile, "c", "close"  if logcopied = 1 then call SysFileDelete copyfile  call STAFUnRegisterEXIT SE_return_string#End/******************************************************************************//* STAFABORT - Abort from program.                                            *//* Arguments: none                                                            *//* Returns  : none                                                            *//******************************************************************************/#Function STAFAbortSTAFAbort:  if infile > '' then call stream infile, "c", "close"  if logcopied = 1 then call SysFileDelete copyfile  call STAFUnRegisterEXIT#End/******************************************************************************//* LogMonErrorText - Log and Monitor error codes/text                         *//* Arguments: none                                                            *//* Returns  : none                                                            *//******************************************************************************/#Function LogMonErrorTextLogMonErrorText:  errorBadNum           = 4001  errorBadNUm.!text     = "Invalid number: "  errorDate             = 4002  errorDate.!text       = "Invalid date: "  errorTime             = 4003  errorTime.!text       = "Invalid time: "  errorLevel            = 4004  errorLevel.!text      = "Invalid error level"  errorDrive            = 4005  errorDrive.!text      = "Unknown/Invalid drive specified"  errorMakeDir          = 4006  errorMakeDir.!text    = "Error creating directory: "  errorBadLog           = 4007  errorBadLog.!text     = "Invalid file format"  errorPurge            = 4008  errorPurge.!text      = "Failed attempting to purge all records, use DELETE"  errorNoRemote         = 4009  errorNoRemote.!text   = "No remote log server defined"RETURN#End/******************************************************************************//* ResolveLevel - Returns an english definition for the 32 bit level mask.    *//* Arguments: level                                                           *//* Returns  : definition                                                      *//******************************************************************************/#Function ResolveLevelResolveLevel: procedure  parse arg RL_lvl  select

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -