It is notoriously difficult to diagnose an uncataloged data set in the logon proc because typically the 'job' output is discarded when the job ends (for this purpose, consider a TSO user as a job). I use this JCL, which allows me to save the output to a held class:
//CKLOGON JOB ,
// MSGCLASS=H,TIME=(5,00),MSGLEVEL=(0,0),REGION=12M,
// USER=&SYSUID,NOTIFY=&SYSUID
// JCLLIB ORDER=SYS1.SYSTEM.LOGON
//LOGON EXEC LOGON
//SYSPRINT DD SYSOUT=H
// MSGCLASS=H,TIME=(5,00),MSGLEVEL=(0,0),REGION=12M,
// USER=&SYSUID,NOTIFY=&SYSUID
// JCLLIB ORDER=SYS1.SYSTEM.LOGON
//LOGON EXEC LOGON
//SYSPRINT DD SYSOUT=H