Logging

SCSI2Pi bietet zahlreiche Möglichkeiten zum Logging. Für s2p, s2pdump und s2pexec wird der Log-Level mit der Kommandozeilen-Option --log-level oder -L konfiguriert:

>s2p --log-level debug

Bei s2p lässt sich das Logging auch über ein Property steuern. Zur Laufzeit lässt sich der Log-Level von s2p mit der SCSI-Control-App oder s2pctl ändern:

>s2pctl -L trace

Die verfügbaren Log-Levels sind trace, debug, info, warning, error, critical und off. Der Standard-Level ist info.

Logging mit s2p

s2p besitzt ein detailliertes Logging insbesondere auf trace-Level. Die Log-Ausgabe lässt sich auf ein bestimmtes Gerät beschränken:

>s2p -i 0 test.hds -i 0:31 printer -L trace:1:31

In diesem Beispiel wird der Log-Level nur für das Gerät mit SCSI-ID 1 und LUN 31 auf trace gesetzt.

Loggen von SCSI-Kommandos

Im Level trace loggt s2p detallierte Informationen über SCSI-Kommandos und deren Parameter. Diese Daten sind bei der Problem-Analyse hilfreich, insbesondere bei Inkompatiblitäten mit Treibern oder Geräten.

[2024-01-21 09:54:12.237] [debug] (ID 3) - Controller is executing ModeSelect6, CDB $15:00:00:00:32:00
[2024-01-21 09:54:12.238] [debug] (ID:LUN 3:31) - Device is executing ModeSelect6 ($15)
[2024-01-21 09:54:12.239] [trace] (ID 3) - Data Out phase
[2024-01-21 09:54:12.239] [trace] (ID 3) - 50 byte(s) of command parameter data:
00000000 65:78:70:6f:72:74:20:50:53:31:3d:27:5c:68:3e:27  'export PS1='\h>''
00000010 0a:0a:69:66:20:5b:5b:20:24:54:45:52:4d:20:3d:3d  '..if [[ $TERM =='
00000020 20:78:74:65:72:6d:2a:20:5d:5d:0a:74:68:65:6e:0a  ' xterm* ]].then.'
00000030 20:20                                            '  '
[2024-01-21 09:54:12.244] [debug] (ID 3) - CHECK CONDITION: ILLEGAL REQUEST (Sense Key $05), INVALID FIELD IN CDB (ASC $24)
[2024-01-21 09:54:12.245] [trace] (ID 3) - Status phase, status is $02
[2024-01-21 09:54:12.245] [trace] (ID 3) - Bus Free phase

SCSI-Fehlercodes werden in einem für Menschen lesbaren Format geloggt.

Loggen von DaynaPort-Netzwerk-Paketen

Im Level trace werden auch Netzwerkpakete aufgezeichnet, die von der DaynaPort-Emulation empfangen oder gesendet werden.

[2024-01-22 13:29:02.139] [trace] (ID:LUN 6:0) - Received 90 byte(s) of network data:
00000000 08:00:00:05:f4:80:33:33:00:00:00:01:f8:32:e4:71  '......33.....2.q'
00000010 14:c7:86:dd:60:04:d3:56:00:20:3a:ff:fe:80:00:00  '....`..V. :.....'
00000020 00:00:00:00:42:78:78:be:b7:08:33:be:ff:02:00:00  '....Bxx...3.....'
00000030 00:00:00:00:00:00:00:00:00:00:00:01:88:00:f9:d5  '................'
00000040 20:00:00:00:2a:02:80:71:22:84:53:40:6d:b7:c5:4e  ' ...*..q".S@m..N'
00000050 2f:37:44:6a:02:01:f8:32:e4:71                    '/7Dj...2.q'