msglim = SYSVAR( "SYSWTERM" ) - 12 msgparms = 'msglim log# log. ' parse value "0 0 0 0 0" with, log# log. . parse value Date( "S" ) Time( "S" ) Time( "N" ) with, yyyymmdd sssss hhmmss . hhmmss = Space( Translate( hhmmss,' ',':' ) ,0 ) parse var yyyymmdd 4 yrdigit 5 mm 7 dd /* 9 12 14 maybe */ if Pos( yrdigit,"13579" ) > 0 then mm = mm + 12 /* mm=24 */ logtag = Substr( "ABCDEFGHIJKLMNOPQRSTUVWX",mm,1 ) /* logtag=X */ subid = logtag""dd""Left( hhmmss,4 ) /* X141743 ? */ vblog.0 = "NEW CATALOG UNIT( SYSDA ) SPACE( 1 5 ) TRACKS", "RECFM( V B ) LRECL( 255 ) BLKSIZE( 0 )" vblog.1 = "MOD" /* if it already exists... */ logdsn = "@LOG."exec_name"."subid".LIST" if Sysdsn( logdsn ) = "OK" then, call ZL_LOGMSG( "-------------------" ) logpref = exec_name "("Branch( "ID" )")" call ZL_LOGMSG( exec_name "started by" Userid() yyyymmdd hhmmss ) call ZL_LOGMSG( logpref "Arg:" argline ) /* . ----------------------------------------------------------------- */ ZB_SAVELOG: /*@ */ if branch then call BRANCH address TSO if Symbol( "LOG#" ) = "LIT" then return /* not yet set */ dsstat = Sysdsn( logdsn ) = "OK" /* 1 if it exists */ "ALLOC FI( @LOG ) DA( " logdsn " ) REU" vblog.dsstat "EXECIO" log# "DISKW @LOG (STEM LOG. FINIS" "FREE FI( @LOG )" return /*@ ZB_SAVELOG */ /* . ----------------------------------------------------------------- */ ZL_LOGMSG: Procedure expose (tk_globalvars) (msgparms) /*@ */ rc = Trace( "O" ) address TSO parse arg msgtext /* for making the msgline always reasonably short: */ do while Length( msgtext ) > msglim pt = LastPos( " ",msgtext,msglim ) slug = Left( msgtext,pt ) if monitor then say, slug parse value log#+1 slug with, zz log.zz 1 log# . msgtext = " "Substr( msgtext,pt ) end /* while msglim */ parse value log#+1 msgtext with, zz log.zz 1 log# . if monitor then say, msgtext return /*@ ZL_LOGMSG */