{"id":1139,"date":"2019-08-14T16:19:46","date_gmt":"2019-08-14T23:19:46","guid":{"rendered":"https:\/\/portal.staylinked.com\/sl\/kb\/?post_type=ht_kb&#038;p=1139"},"modified":"2025-04-16T09:35:24","modified_gmt":"2025-04-16T16:35:24","slug":"session-specific-log-files","status":"publish","type":"ht_kb","link":"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/session-specific-log-files\/","title":{"rendered":"Log Files &#8211; Session-Specific Log Files"},"content":{"rendered":"\n<p>All StayLinked clients record a client log, but the StayLinked server\ncan also be configured to record additional log files for each session. These server-side\nsession-specific files are stored in the server\u2019s logs subdirectory and include\nthe IP address of the related device as part of the file name. An example of a\nfile name would be StayLinkedHandler.192.168.12.142.log.<\/p>\n\n\n\n<p>When gathering client files, the StayLinked Administrator will store them in the files subdirectory. Log files gathered from the server are written to the Administrator\u2019s local logs subdirectory. <\/p>\n\n\n\n<h2>Client<\/h2>\n\n\n\n<p><strong>Default state:<\/strong> Enabled as staylink.log<br><strong>Maximum size:<\/strong> 512KB with optional client settings to adjust size.<br><strong>Cleanup: <\/strong>512KB or device cold reset<br><strong>History:<\/strong> None<\/p>\n\n\n\n<p>The StayLinked client\u2019s job is to reliably display screen updates and submit user inputs to the server in the order there are received. The client log shows the device\u2019s point of view for communication. It records startup and connection details as well as interruptions in the network. More information on communication interruptions can be found in the <a href=\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/client-server-connectivity\/\">Client-Server Communications Guide<\/a><strong><em>.<\/em><\/strong><\/p>\n\n\n\n<p>Stop and error events in the\nclient are also recorded here, but application errors are not recorded.\nApplications run on the host, not as part of the StayLinked client which simply\npaints whatever the server sends out to the device screen.<\/p>\n\n\n\n<p>Log events are recorded as [i]\ninformation, [e] error, or [d] debug. Debug events should only appear when\nenhanced\/verbose logging is enabled. Errors are uncommon, but may help identify\nsources when issues are encountered. The informational events range from\nstandard messages and confirmations to entries about network and connectivity\nstatus.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>The following are examples of important\nclient log file contents.<\/strong><\/p>\n\n\n\n<p><strong>During startup, dozens of general client and device details are recorded:<\/strong><br><code>Date Time:[i] *** StayLinked v12.1.0(130) [Feb 19 2016] ***<br>Date Time:[i] device_type=MC9190C_E5<br>Date Time:[i] espcontrol version=10.0.0(116)<br>Date Time:[i] ip addr: 10.10.225.187<\/code><\/p>\n\n\n\n<p><strong>Once a connection is initiated, the client logs the connection request:<\/strong><br><code>Date Time:[i] ------- host connect -------<br>Date Time:[i] connect: h=192.168.100.63, p=3006<\/code><\/p>\n\n\n\n<p><strong>A session ID of 00000 is a request for a new session. A client recovering an existing session will request a specific session ID:<\/strong><br><code>Date Time:[i] session-requested=513EA<\/code><\/p>\n\n\n\n<p><strong>Network interruptions are an important part of the client log:<\/strong><\/p>\n\n\n\n<p>[Out of Range]<br><code>Date Time:[i] &lt;- oor_beg<br>Date Time:[i] &lt;- oor_max - AP=[00:A0:F8:61:D7:D2]<br>Date Time:[i] &lt;- oor_abt<br>Date Time:[i] &lt;- oor_end<\/code><br><\/p>\n\n\n\n<p>[Linking]<br><code>Date Time:[i] &lt;- oos_beg<br>Date Time:[i] &lt;- oos_max - AP=[00:08:A2:01:64:00]<br>Date Time:[i] &lt;- oos_abt<br>Date Time:[i] &lt;- oos_end<\/code><\/p>\n\n\n\n<p>Out of Range events are recorded\nwhen the device operating system reports that the radio is not associated to\nnetwork. Linking events are recorded when packets are not returning in a timely\nmanner. Each event is recorded as a begin, displaying a character in the upper\nright corner of the screen. If the issue continues, the log will record a \u2018max\u2019\nwhich means the user is being presented with a retry counter. The event will\n\u2018end\u2019 when the network access is returned or when the user presses a key to\ncancel, recorded as an \u2018abort\u2019.<\/p>\n\n\n\n<p>More details on these events can\nbe found in the technical references for Client-Server Communications and Host\nTimeout.<\/p>\n\n\n\n<p><strong>Disconnections from a session are recorded to the log with a disconnect code:<\/strong><br><code>Date Time:[i] client disconnect, code=110<br>Date Time:[i] host disconnect, code=110<\/code><\/p>\n\n\n\n<p>The following is a list of the possible disconnect codes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>CLIENT_DIS_SERVICE<\/td><td>100<\/td><\/tr><tr><td>CLIENT_DIS_OOR_ABORT<\/td><td>110<\/td><\/tr><tr><td>CLIENT_DIS_OOS_ABORT<\/td><td>120<\/td><\/tr><tr><td>CLIENT_DIS_NETM_ABORT<\/td><td>130<\/td><\/tr><tr><td>CLIENT_DIS_SCRIPT<\/td><td>140<\/td><\/tr><tr><td>CLIENT_DIS_FROM_USER<\/td><td>150<\/td><\/tr><tr><td>CLIENT_DIS_SWITCH_SESS<\/td><td>160<\/td><\/tr><tr><td>CLIENT_DIS_FROM_ADMIN<\/td><td>170<\/td><\/tr><tr><td>CLIENT_DIS_CLIENT_EXIT<\/td><td>180<\/td><\/tr><tr><td>CLIENT_DIS_SESSION_ENDED<\/td><td>190<\/td><\/tr><tr><td>CLIENT_DIS_SESSION_NOT_FOUND<\/td><td>195<\/td><\/tr><tr><td>CLIENT_DIS_TRANSFER_SESS<\/td><td>200<\/td><\/tr><tr><td>CLIENT_DIS_SERVERS_LIST<\/td><td>210<\/td><\/tr><tr><td>CLIENT_DIS_RECONNECT<\/td><td>220<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2>Session<\/h2>\n\n\n\n<p><strong>Default state:<\/strong> Disabled, enabled in server settings for session, handler and socket logging.<br><strong>Maximum size:<\/strong> Per Server Settings<br><strong>Cleanup:<\/strong> Deleted and restarted after reaching max size<br><strong>History:<\/strong> None (see section\n1.4 for snapshot)<\/p>\n\n\n\n<p>The session log records transactions between the StayLinked server and\ntelnet host. Each outbound transaction submitted to the telnet host is recorded.\nTelnet host responses are noted, but the log file does not include the contents\nof those return presentation events. The session log is an excellent source to\ndetermine how long the host application is taking to respond to user inputs.\nTimestamps can help review this file for each input and the corresponding\nresponse or host event.<\/p>\n\n\n\n<p>Viewing the host\nresponses is best accomplished using the handler or proxy log files. Minor\nadjustments have been made to the following example for readability and\ndemonstration.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>The following are examples of important\nsession log file contents.<\/strong><\/p>\n\n\n\n<p><strong>Typical events include a user input and host reaction:<\/strong><br><code>Date Time <\/code><a><code>- <\/code><\/a><code>getDeviceInput() KEY (#9) keyCode = '720000', thisKey = '[pf3]'<br>Date Time - processSession() is sending key: '[pf3]' to host.<br>Date Time - OIANotifyEvent: Event being processed now.<br>Date Time - refreshOIALine: running...<br>Date Time - refreshOIALine: 5250 Session is Inhibited.<br>Date Time - refreshOIALine: completed.<br>Date Time - -------------------------------------------<br>Date Time - OIANotifyEvent: Event being processed now.<br>Date Time - Processing presentation space update event.<br>Date Time - PSNotifyEvent: Calling displayCurrentScreen() for full screen update<br>Date Time - displayCurrentScreen: From 1 to 1920, Size 1921, Cursor Pos 12,1<br>Date Time - displayCurrentScreen: Processing Standard Full Screen Update<br>Date Time - sendEntireScreenToDevice: running...<br>Date Time - displayCurrentScreen: Completed.<br>Date Time - refreshOIALine: running...<br>Date Time - refreshOIALine: 5250 Session is not Inhibited.<br>Date Time - refreshOIALine: completed.<\/code><\/p>\n\n\n\n<p>In this example, you can use the user\npressed the function 3 key, which set caused the host to paint new information\nto the screen. This presentation events shows the amount of data painted to the\nscreen and current cursor position. The timestamps of this log can help\ndemonstrate the timing between input and response, since the input received at\nthe server no longer includes network delays.<\/p>\n\n\n\n<p><strong>Different input types can appear in this log:<\/strong><br><code>Date Time - getDeviceInput() KEY (#7) keyCode = '0D0D00', thisKey = '[enter]'<br>Date Time - getDeviceInput() SCAN (#27) barType = 0, scanData = 'Q02748277'<\/code><\/p>\n\n\n\n<p>Key codes are referenced in the StayLinked keyboard map. Barcodes show the barcode symbology type and barcode contents. While the handler log records the data coming from the client, this log shows the data after StayLinked processing. This means that any barcode adjustments by StayLinked will show in this log, but not in the handler log. The following is a list of the different barcode symbology types recognized by StayLinked in the Session log (in the Handler log they will be hex):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>1D Symbologies<\/strong><\/td><td><strong>2D Symbologies<\/strong><\/td><td><strong>Other Types<\/strong><\/td><\/tr><tr><td>8 = \"MSI\/Plessey\"<\/td><td>128 = \"PDF417\"<\/td><td>252 = \"Scale Data\"<\/td><\/tr><tr><td>9 = \"Alpha Plessey\"<\/td><td>129 = \"MicroPDF417\"<\/td><td>253 = \"Mag Stripe\"<\/td><\/tr><tr><td>10 = \"ISBN Plessey\"<\/td><td>130 = \"MacroPDF417\"<\/td><td>254 = \"RFID\"<\/td><\/tr><tr><td>11 = \"Pure Plessey\"<\/td><td>131 = \"MacroMicroPDF417\"<\/td><td>0 = \"Unknown\/Unsupported\"<\/td><\/tr><tr><td>12 = \"Sains. Plessey\"<\/td><td>132 = \"MaxiCode\"<\/td><td><\/td><\/tr><tr><td>15 = \"UCC\/EAN 128\"<\/td><td>133 = \"Data Matrix\"<\/td><td><\/td><\/tr><tr><td>16 = \"UPC A\/E\"<\/td><td>134 = \"QR Code\"<\/td><td><\/td><\/tr><tr><td>17 = \"EAN 8\/13\"<\/td><td>135 = \"Micro QR Code\"<\/td><td><\/td><\/tr><tr><td>18 = \"UPC\/EAN\"<\/td><td>136 = \"Aztec Code\"<\/td><td><\/td><\/tr><tr><td>32 = \"Codabar\"<\/td><td>137 = \"Multi-Dimensional\"<\/td><td><\/td><\/tr><tr><td>40 = \"Code 3 of 9\"<\/td><td>138 = \"Code 32\"<\/td><td><\/td><\/tr><tr><td>41 = \"Trioptic 39\"<\/td><td>139 = \"Imager\"<\/td><td><\/td><\/tr><tr><td>48 = \"All Code 2 of 5\"<\/td><td>140= \"Signature\"<\/td><td><\/td><\/tr><tr><td>49 = \"Discrete 2 of 5\"<\/td><td>141 = \"Web Code\"<\/td><td><\/td><\/tr><tr><td>50 = \"Inter. 2 of 5\"<\/td><td>142 = \"Cue Code\"<\/td><td><\/td><\/tr><tr><td>51 = \"Indus. 2 of 5\"<\/td><td>143 = \"Composite AB\"<\/td><td><\/td><\/tr><tr><td>52 = \"Matrix 2 of 5\"<\/td><td>144 = \"Composite C\" <\/td><td><\/td><\/tr><tr><td>53 = \"IATA 2 of 5\"<\/td><td>145 = \"TLC 39\"<\/td><td><\/td><\/tr><tr><td>56 = \"Code 11\"<\/td><td>146  = \"USPost Net\"<\/td><td><\/td><\/tr><tr><td>64 = \"Code 128\"<\/td><td>147 = \"US Planet\"<\/td><td><\/td><\/tr><tr><td>76 = \"RSS-14\"<\/td><td>148 = \"UK Postal\"<\/td><td><\/td><\/tr><tr><td>77 = \"RSS-14 Limited\"<\/td><td>149 = \"Japan Postal\"<\/td><td><\/td><\/tr><tr><td>78 = \"RSS-14 Expanded\"<\/td><td>150 = \"Australian Postal\"<\/td><td><\/td><\/tr><tr><td>80 = \"Code 93\"<\/td><td>151 = \"Dutch Postal\"<\/td><td><\/td><\/tr><tr><td>82 = \"Code 49\"<\/td><td>152 = \"Canada Postal\"<\/td><td><\/td><\/tr><tr><td>88 = \"AMES Code\"<\/td><td>153 = \"Chinese 2 of 5\"<\/td><td><\/td><\/tr><tr><td><\/td><td>154 = \"Bookland\"<\/td><td><\/td><\/tr><tr><td><\/td><td>155 = \"Coupon\"<\/td><td><\/td><\/tr><tr><td><\/td><td>156 = \"Korean 3 of 5\"<\/td><td><\/td><\/tr><tr><td><\/td><td>157 = \"US4 State\"<\/td><td><\/td><\/tr><tr><td><\/td><td>158 = \"US4 State FICS\"<\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Some applications paint screen events even when the user is inactive:<\/strong><br><code>Date Time - Processing presentation space update event.<br>Date Time - PSNotifyEvent: Calling displayCurrentScreen() for multi-line update<br>Date Time - displayCurrentScreen: From 1121 to 1280, Size 1921, Cursor Pos 16,12<br>Date Time - sendScreenLinesToDevice: running...<br>Date Time - displayCurrentScreen: Completed.<br>Date Time - -------------------------------------------<br>Date Time - Processing presentation space update event.<br>Date Time - PSNotifyEvent: Calling displayCurrentScreen() for full screen update<br>Date Time - displayCurrentScreen: From 1 to 1920, Size 1921, Cursor Pos 16,12<br>Date Time - displayCurrentScreen: Detected Empty Screen Update<br>Date Time - displayCurrentScreen: Completed.<br>Date Time - -------------------------------------------<br>Date Time - Processing presentation space update event.<br>Date Time - PSNotifyEvent: Calling displayCurrentScreen() for full screen update<br>Date Time - displayCurrentScreen: From 1 to 1920, Size 1921, Cursor Pos 16,12<br>Date Time - displayCurrentScreen: Processing post Empty Screen Full Screen Update<br>Date Time - sendEntireScreenToDevice: running...<br>Date Time - displayCurrentScreen: Completed.<\/code><\/p>\n\n\n\n<p>In this example, the telnet host\nis sending repeated presentation events to the device. This example has a host\nthat repaints the telnet screen every second. This unnecessary traffic\nsignificantly increases the amount of data passed between the telnet client and\nhost. This behavior is most often seen in applications with a clock or timer\nthat updates on a regular interval in the emulation space.<\/p>\n\n\n\n<p><strong>Application screens drive screen recognition features, which are recorded in the session log:<\/strong><br><code>Date Time - recognitionProcess: no recognized screen found<br>Date Time - recognitionProcess: ***** Recognized screen 'login' out of 13 screens *****<br>Date Time - recognitionProcess: Screen recognition instance #1, Host Event, Show this = true<br>Date Time - recognitionProcessHostAPI: Processing Update User Name = 'jmasters'<\/code><\/p>\n\n\n\n<h2>Handler<\/h2>\n\n\n\n<p><strong>Default state:<\/strong> Disabled, enabled in server settings for session, handler and socket logging.<br><strong>Maximum size:<\/strong> Per Server Settings<br><strong>Cleanup:<\/strong> Deleted and restarted after reaching max size<br><strong>History:<\/strong> None (see section\n1.4 for snapshot)<\/p>\n\n\n\n<p>Shows the handling of the session by SL, and includes all inbound inputs\nand outbound presentation events. Since this log is StayLinked Client to\nStayLinked Server, the inputs will show as they came from the device and will\nnot show any adjustment by the server process.<\/p>\n\n\n\n<p>Minor adjustments have been made to the following example for readability and demonstration. Note that some events have improved logging starting in version 15.1 build 208 of the Server to include additional event recording.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>The following are examples of important\nhandler log file contents.<\/strong><\/p>\n\n\n\n<p><strong>The session and connection information is recorded when a session is started:<\/strong><br><code>Date Time **********<br>Date Time StayLinked Handler Starting Session 66407 for 10.10.225.187<\/code><\/p>\n\n\n\n<p><br><strong>If a fixed port range is configured for your connections, the port and range is recorded:<\/strong><br><code>Attempting to open a socket on IP 192.168.100.12 on a UDP port between 5000 and 6000<br>StayLinked Handler is using socket on IP: 192.168.100.12 Port: 5005<\/code><\/p>\n\n\n\n<p><strong>Once the standard handshake completes, the device returns the \u2018getdeviceconfig\u2019:<\/strong><br><code>Date Time esp_GetDeviceConfig() returns 'AB~001~19~000~MC9190C_E5~14~22~12~01~0130~0000 ~000~002368E6EAFE~640~6007~3~20170406092835~S~WindowsCE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ~2~01~3~0~'<\/code><\/p>\n\n\n\n<p>More information on the\nclient-server handshake can be found in the Err:Host Timeout and Client-Server\nConnectivity technical references.<\/p>\n\n\n\n<p><strong>Once the device has been identified, StayLinked processes several advanced features:<\/strong><br><code>Date Time SEND: (0006) 'AA~007~14~00~02~0018~Client Settings...~'<br>Date Time SEND: (0007) 'AA~008~14~00~03~0020~Device Management...~'<br>Date Time SEND: (000B) 'AA~012~14~00~04~0018~Client Software...~'<br>Date Time SEND: (000C) 'AA~013~14~00~05~0015~Provisioning...~'<\/code><\/p>\n\n\n\n<p>Note the outbound screen update\npacket sequence numbers in parenthesis. These values are in hexadecimal and are\nrecorded for all inbound and outbound packets. These are how StayLinked\nguarantees packet delivery and synchronization.<\/p>\n\n\n\n<p><strong>The device is then placed into a device group:<\/strong><br><code>Date Time EspLinkDeviceLoader configureDevice Selecting Best Device Group<\/code><\/p>\n\n\n\n<h3>Typical Input Types<\/h3>\n\n\n\n<p><strong>There are five types of user inputs:<\/strong><br>Keyboard \u2013 On-screen or hardware keyboard, transmits the 6-character key code-<br><code>Date Time esp_ProcessDeviceInput() - RECV: (seq#) 'AC~343400~Y~'<\/code><br>Scan \u2013 Input strings from a scan engine or Android label. NOTE: the second value is the barcode type in hex (e.g. 40 is 0x40, which is decimal 64 or Code 128 in the table above)<br><code>Date Time esp_ProcessDeviceInput() - RECV: (seq#) 'AD~40~0~11~A2203000104~\u00a7~'<\/code><br>Tap \u2013 touch screen or mouse input that does not hit an on-screen button<br><code>Date Time &nbsp;esp_ProcessDeviceInput() - RECV: (seq#) 'AG~08~0D~'<br><\/code>Voice \u2013 Data converted to an input string by Vangard Voice<br><code>Date Time esp_ProcessDeviceInput() - RECV: (seq#) 'AI~015~Your Voice Data~'<\/code><br>Mnemonic Command \u2013 touch input on a graphical button<br><code>Date Time<\/code> <code>esp_ProcessDeviceInput() - RECV: (seq#) 'AH~10~nyc[enter]~'<\/code><\/p>\n\n\n\n<p>Note the device input string starts with characters that represent the input type following the sequence number of the input by the user in parenthesis. In these examples, AC is a keyboard input which will always include a six-digit key code while AD is a scanned barcode that includes data for the barcode type (in hex) and length. Tap inputs are recorded as AG transactions or AH depending on what was tapped on the device screen.<\/p>\n\n\n\n<p>Outbound transactions to the device screen appear as a screen print. These SEND packets are sequenced for delivery and include information about the position of the update and update contents.<br><code>Date Time esp_XYPrintC()<\/code><br><code>Date Time SEND: (0039) 'AA~058~28~09~10~0005~\u00fb\u00f9\u00f84~09~10~1~'<\/code><\/p>\n\n\n\n<p>Inputs without a host reaction are common when the host does not paint screen updates. These can be hidden fields, such as a password or when the host does not echo the input back to the user.<\/p>\n\n\n\n<h3> Log Analysis Tool <\/h3>\n\n\n\n<p>When a StayLinkedHandler log file is opened in the view, the file menu will include the option to analyze the file for you. This takes the standard file and reformats it into a more easily read version. This analysis log will be stored to the Administrator\u2019s local logs directory as mentioned above. The StayLinked Server does not get a copy of the file since it is generated by the StayLinked Administrator. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright\"><img loading=\"lazy\" width=\"231\" height=\"201\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/File-Viewer-for-handler-Log2.png.jpg\" alt=\"\" class=\"wp-image-1141\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/File-Viewer-for-handler-Log2.png.jpg 231w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/File-Viewer-for-handler-Log2.png-50x44.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/File-Viewer-for-handler-Log2.png-60x52.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/File-Viewer-for-handler-Log2.png-100x87.jpg 100w\" sizes=\"(max-width: 231px) 100vw, 231px\" \/><\/figure><\/div>\n\n\n\n<p>The analysis log takes the inputs\nand reactions from the handler log and formats them into a recreation of the\ndevice screens. This usually allows for a simple view of a screen, user input\nand then the reaction screen.<\/p>\n\n\n\n<p>When the analysis program runs, it\nreads through the file assuming 24&#215;80 rows and columns until the screen\ndimensions are found. Once the client screen size if found in the file, screens\nare formatted knowing the proper display size. If a file does not contain a\nconnection request, it may not be able to format the screen in the proper\nscreen dimensions.<\/p>\n\n\n\n<p>Starting in Server\/Administrator version 15.5, any Handler log can be run through the analysis tool as an option from the Logs Menu in the Administrator. This replaces the standalone tool that has been included in the Administrator installation folder. The integrated Administrator analysis tool offers a wider range or features and recognition of events that will not be included in the standalone tool that has been deprecated.<\/p>\n\n\n\n<p>While timestamps are removed from these examples, it should be noted that the timestamps can be an important part of diagnostics efforts. Excessive delays between the user input and host response will directly impact the user experience.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>The following is an example of the analysis log file with comments.<\/strong><\/p>\n\n\n\n<p><strong>The user is presented with a menu:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"342\" height=\"349\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu.jpg\" alt=\"\" class=\"wp-image-1142\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu.jpg 342w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu-294x300.jpg 294w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu-50x50.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu-60x60.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu-98x100.jpg 98w\" sizes=\"(max-width: 342px) 100vw, 342px\" \/><\/figure>\n\n\n\n<p><strong>The user pressed a 6 on the device, generating the key code 363600:<\/strong><br><code>Date Time USER PRESSED KEYCODE: 363600 '6'<\/code><\/p>\n\n\n\n<p><strong>The host updates the selection field with the user input:<\/strong> <br><code>Date Time SCREEN UPDATE at Row 12, Col 1, Cursor at Row 12, Col 1 with Length 5, Data '\u00fb\u00f9\u00f86'<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"278\" height=\"283\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu2.jpg\" alt=\"\" class=\"wp-image-1143\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu2.jpg 278w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu2-50x50.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu2-60x60.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/WMS0A_RF-Menu2-98x100.jpg 98w\" sizes=\"(max-width: 278px) 100vw, 278px\" \/><\/figure>\n\n\n\n<p><strong>The host then paints a new screen based on the menu item:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"689\" height=\"241\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen.jpg\" alt=\"\" class=\"wp-image-1146\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen.jpg 689w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen-300x105.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen-50x17.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen-60x21.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen-100x35.jpg 100w\" sizes=\"(max-width: 689px) 100vw, 689px\" \/><\/figure>\n\n\n\n<p><strong>The user then scans a barcode which is parsed across two fields:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"435\" height=\"33\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Date-Time-user.png\" alt=\"\" class=\"wp-image-1149\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Date-Time-user.png 435w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Date-Time-user-300x23.png 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Date-Time-user-50x4.png 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Date-Time-user-60x5.png 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Date-Time-user-100x8.png 100w\" sizes=\"(max-width: 435px) 100vw, 435px\" \/><\/figure>\n\n\n\n<p><strong>The host responds by entering the data in the fields:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"667\" height=\"204\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen2.jpg\" alt=\"\" class=\"wp-image-1152\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen2.jpg 667w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen2-300x92.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen2-50x15.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen2-60x18.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/paint-new-screen2-100x31.jpg 100w\" sizes=\"(max-width: 667px) 100vw, 667px\" \/><\/figure>\n\n\n\n<p><strong>The user presses enter:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"422\" height=\"24\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/User-Presses.jpg\" alt=\"\" class=\"wp-image-1153\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/User-Presses.jpg 422w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/User-Presses-300x17.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/User-Presses-50x3.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/User-Presses-60x3.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/User-Presses-100x6.jpg 100w\" sizes=\"(max-width: 422px) 100vw, 422px\" \/><\/figure>\n\n\n\n<p><strong>The host processes the input and responds with a beep and an error message:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"678\" height=\"401\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Host-responds-with-beep-and-error.jpg\" alt=\"\" class=\"wp-image-1154\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Host-responds-with-beep-and-error.jpg 678w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Host-responds-with-beep-and-error-300x177.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Host-responds-with-beep-and-error-50x30.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Host-responds-with-beep-and-error-60x35.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Host-responds-with-beep-and-error-100x59.jpg 100w\" sizes=\"(max-width: 678px) 100vw, 678px\" \/><\/figure>\n\n\n\n<h2>Socket<\/h2>\n\n\n\n<p><strong>Default state:<\/strong> Disabled, enabled in server settings for socket logging.<br><strong>Maximum size:<\/strong> Per Server Settings<br><strong>Cleanup:<\/strong> Deleted and restarted after reaching max size<br><strong>History:<\/strong> None (see section\n1.4 for snapshot)<\/p>\n\n\n\n<p>Also known as the IP Traffic log, this file shows synchronizations, packet payloads and sequence numbers. While not often required, this log shows the reliability of the Client2Host protocol by detailing each inbound and outbound transaction between the StayLinked Client and Server.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>The following is a few examples of socket log contents.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"675\" height=\"187\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/socket-log-content.jpg\" alt=\"\" class=\"wp-image-1155\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/socket-log-content.jpg 675w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/socket-log-content-300x83.jpg 300w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/socket-log-content-50x14.jpg 50w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/socket-log-content-60x17.jpg 60w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/socket-log-content-100x28.jpg 100w\" sizes=\"(max-width: 675px) 100vw, 675px\" \/><\/figure>\n\n\n\n<p>Note the SYNC-OK message, which\nconfirms that the client and server have confirmed that they are on the same\nsequence numbers and are fully synchronized.<\/p>\n\n\n\n<p>Several abbreviations are used. These represent server and client sequence numbers. For example, &nbsp;Last Observed Client Sequence (LOCS) and Last Observed Server Sequence (LOSS).<\/p>\n\n\n\n<h4>Instructional Video: Turn on Session Specific Socket Logging<\/h4>\n\n\n\n<div class=\"wp-block-media-text alignwide\"><figure class=\"wp-block-media-text__media\"><video controls src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/10\/Turn-on-Session-Specific-Logging.mp4\"><\/video><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-large-font-size\"><\/p>\n<\/div><\/div>\n\n\n\n<h2>Proxy<\/h2>\n\n\n\n<p><strong>Default state: <\/strong>Disabled, enabled as an emulation property in the telnet host entry.<br><strong>Maximum size:<\/strong> Per Server Settings<br><strong>Cleanup:<\/strong> Deleted and restarted after reaching max size<br><strong>History:<\/strong> None <\/p>\n\n\n\n<p>This file is enabled in the telnet host entry as an emulation property and records untouched telnet client (C) and telnet Server (S) conversation details. This option is not available for VT-SmartTE emulation sessions. These logs are stored in the StayLinked Server\u2019s Logs subdirectory and cannot be accessed through the StayLinked Administrator. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright\"><img loading=\"lazy\" width=\"381\" height=\"629\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/proxylog.jpg\" alt=\"\" class=\"wp-image-1156\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/proxylog.jpg 381w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/proxylog-182x300.jpg 182w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/proxylog-30x50.jpg 30w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/proxylog-36x60.jpg 36w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/proxylog-61x100.jpg 61w\" sizes=\"(max-width: 381px) 100vw, 381px\" \/><\/figure><\/div>\n\n\n\n<p>The proxy log can be an important tool when confirming the source of\nerror messages as well as the host processing time between transactions. This\nfile can also help confirm if input adjustments are being made by the telnet\nhost or telnet client.<\/p>\n\n\n\n<p>Proxy logging is best used on standard VT emulation types. 5250, 3270 and secured emulation protocols will not offer the same simple formatting that VT emulations provide. SSH connections may require changing to VT emulation as part of your troubleshooting efforts.<br><br><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>The following is a brief example of proxy log contents.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"504\" height=\"755\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Proxy-Log-Example.jpg\" alt=\"\" class=\"wp-image-1157\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Proxy-Log-Example.jpg 504w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Proxy-Log-Example-200x300.jpg 200w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Proxy-Log-Example-33x50.jpg 33w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Proxy-Log-Example-40x60.jpg 40w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/Proxy-Log-Example-67x100.jpg 67w\" sizes=\"(max-width: 504px) 100vw, 504px\" \/><\/figure>\n\n\n\n<p>This raw input and output is best reviewed in an editing tool that can show the hexadecimal values in each transaction. This can help identify escape sequences and control codes used in the conversation.<\/p>\n\n\n\n<h2>Network Trace<\/h2>\n\n\n\n<p><strong>Default state: <\/strong>Disabled, enabled as an emulation property in the telnet host entry.<br><strong>Maximum size:<\/strong> Per Server Settings<br><strong>Cleanup:<\/strong> Deleted and restarted after reaching max size<br><strong>History:<\/strong> None<\/p>\n\n\n\n<p>This file is enabled in the telnet host entry as an emulation property and records untouched telnet client and telnet Server conversation details. This option is only available for VT-SmartTE emulation sessions. These logs are stored in the StayLinked Server\u2019s Logs subdirectory and cannot be accessed through the StayLinked Administrator.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"381\" height=\"635\" src=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2025\/04\/image-19.png\" alt=\"\" class=\"wp-image-5660\" srcset=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2025\/04\/image-19.png 381w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2025\/04\/image-19-180x300.png 180w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2025\/04\/image-19-30x50.png 30w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2025\/04\/image-19-36x60.png 36w, https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2025\/04\/image-19-60x100.png 60w\" sizes=\"(max-width: 381px) 100vw, 381px\" \/><\/figure>\n\n\n\n<p>This combination of Debug logging and Network Trace will generate two files of like names with highly detailed i\/o between the StayLinked server and emulation host.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>All StayLinked clients record a client log, but the StayLinked server can also be configured to record additional log files for each session. These server-side session-specific files are stored in the server\u2019s logs subdirectory and include the IP address of the related device as part of the file name. An&#8230;<\/p>\n","protected":false},"author":7,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":[],"ht-kb-category":[24],"ht-kb-tag":[75,76,78,77],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Log Files - Session-Specific Log Files &ndash; StayLinked<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.staylinked.com\/knowledge-base\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Log Files - Session-Specific Log Files &ndash; StayLinked\" \/>\n<meta property=\"og:description\" content=\"All StayLinked clients record a client log, but the StayLinked server can also be configured to record additional log files for each session. These server-side session-specific files are stored in the server\u2019s logs subdirectory and include the IP address of the related device as part of the file name. An...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/session-specific-log-files\/\" \/>\n<meta property=\"og:site_name\" content=\"StayLinked\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-16T16:35:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/File-Viewer-for-handler-Log2.png.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/#website\",\"url\":\"https:\/\/portal.staylinked.com\/sl\/kb\/\",\"name\":\"StayLinked Knowledge Base\",\"description\":\"Partner Portal Resources and Support\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/portal.staylinked.com\/sl\/kb\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/session-specific-log-files\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/File-Viewer-for-handler-Log2.png.jpg\",\"contentUrl\":\"https:\/\/portal.staylinked.com\/sl\/kb\/wp-content\/uploads\/2019\/08\/File-Viewer-for-handler-Log2.png.jpg\",\"width\":231,\"height\":201},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/session-specific-log-files\/#webpage\",\"url\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/session-specific-log-files\/\",\"name\":\"Log Files - Session-Specific Log Files &ndash; StayLinked\",\"isPartOf\":{\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/session-specific-log-files\/#primaryimage\"},\"datePublished\":\"2019-08-14T23:19:46+00:00\",\"dateModified\":\"2025-04-16T16:35:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/session-specific-log-files\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/session-specific-log-files\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/session-specific-log-files\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/portal.staylinked.com\/sl\/kb\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Articles\",\"item\":\"https:\/\/portal.staylinked.com\/sl\/kb\/knowledge-base\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Log Files &#8211; Session-Specific Log Files\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb\/1139"}],"collection":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/comments?post=1139"}],"version-history":[{"count":8,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb\/1139\/revisions"}],"predecessor-version":[{"id":5661,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb\/1139\/revisions\/5661"}],"wp:attachment":[{"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/media?parent=1139"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=1139"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/portal.staylinked.com\/sl\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=1139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}