| ARM Logging |
Using the ARM interface, the SAS logging facility, and a configuration file, one or more logs can be created. Each log is a file appender that contains pattern layouts. The file appender is defined in the configuration file. The following syntax creates a file appender:
<appender class="FileAppender" name="LOG"> <param name="File" value="logs/trace.log"/> <param name="Append" value="false"/> <layout> <param name="ConversionPattern" value="%d %-5p [%t] %c (%F:%L) - %m"/> </layout> </appender>
For more information about the configuration parameters in the file appender syntax, see Description of ARM Appender Configuration Parameters.
A pattern layout is needed to create the output message format.
<layout> <param name="ConversionPattern" value="%d, %X{App.Name}, %X{ARM.GroupName}, %X{ARM.TranName}, %X{ARM.TranState}, %X{ARM.ParentCorrelator}, %X{ARM.CurrentCorrelator}, %X{ARM.TranStatus}, %X{ARM.TranStart.Time}, %X{ARM.TranStop.Time}, %X{ARM.TranResp.Time} "/> </layout>
For more information about pattern layouts, see Description of ARM Appender Pattern Layouts.
The following configuration file creates three logs:
<?xml version="1.0"?> <logging:configuration xmlns:log4sas="http://www.sas.com/xml/logging/1.0/" <appender class="FileAppender" name="LOG"> <param name="File" value="logs/trace.log"/> <param name="Append" value="false"/> <layout> <param name="ConversionPattern" value="%d %-5p [%t] %c (%F:%L) - %m"/> </layout> </appender> <appender class="FileAppender" name="ARM2LOG"> <param name="File" value="logs/arm2.log"/> <param name="Append" value="false"/> <layout> <param name="ConversionPattern " value="%X{ARM2.Record}"/> </layout> </appender> <appender class="FileAppender" name="ARM4LOG"> <param name="File" value="logs/arm4.log"/> <param name="Append" value="false"/> <layout> <param name="ConversionPattern" value="%d, %X{App.Name}, %X{ARM.GroupName}, %X{ARM.TranName}, %X{ARM.TranState}, %X{ARM.ParentCorrelator}, %X{ARM.CurrentCorrelator}, %X{ARM.TranStatus}, %X{ARM.TranStart.Time}, %X{ARM.TranStop.Time}, %X{ARM.TranResp.Time} "/> </layout> </appender> <appender class="ARMAppender" name="ARM"> <param name="GetTimes" value="TRUE"/> <appender-ref ref="ARM4LOG"/> <appender-ref ref="ARM2LOG"/> </appender> <logger name="Perf.ARM" additivity="true"> <level value="all"/> <appender-ref ref="ARM"/> </logger> <root> <level value="trace"/> <appender-ref ref="LOG"/> </root> </logging:configuration>
Here are the three logs that are created by the configuration file (ARM2.LOG, ARM4.LOG, and TRACE.LOG):
I,1523810344.972000,1,0.062500,0.453125,SAS,
G,1523810344.972000,1,1,SAS,MVA SAS session
S,1523810344.972000,1,1,1,0.062500,0.453125
G,1523810344.972000,1,2,PROCEDURE,PROC START/STOP,PROC_NAME,
ShortStr,PROC_IO,Count64,PROC_MEM,Count64,PROC_LABEL,LongStr
I,1523810345.566000,2,0.203125,0.734375,OpenCodeARMGTID test w/ user metrics,*
G,1523810345.691000,2,3,OpenCode02,,ShtStr,ShortStr,cnt32,Count32
S,1523810345.831000,2,3,2,0.359375,0.828125
S,1523810345.847000,1,2,3,0.359375,0.828125,DATASTEP,0,0,
P,1523810345.956000,1,2,3,0.375000,0.890625,0,DATASTEP,311110,283296,
S,1523810345.972000,1,2,4,0.375000,0.890625,SORT ,0,0,
P,1523810346.128000,1,2,4,0.421875,0.953125,0,SORT ,532806,2103048,
P,1523810346.191000,2,3,2,0.453125,0.984375,0
E,1523810346.238000,2,0.468750,1.000000
P,1523810346.285000,1,1,1,0.468750,1.015625,0
E,1523810346.300000,1,0.484375,1.015625
2008-04-14T12:39:04,972 | SAS | USERID | | INIT | | | | | |
2008-04-14T12:39:04,972 | SAS | USERID | SAS | REGISTER | | | | | |
2008-04-14T12:39:04,972 | SAS | USERID | SAS | START | |
ACj/ADExOUUzQkI3LUJGQTgtNDlBOS04RTg1LUVDOTJCRTQ2RTY4OA== | |
1523810344.972000 | |
2008-04-14T12:39:04,972 | SAS | USERID | PROCEDURE | REGISTER | | | | | |
2008-04-14T12:39:05,565 | OpenCodeARMGTID_test_w/_user_metrics |
USERID | | INIT | | | | | |
2008-04-14T12:39:05,690 | OpenCodeARMGTID_test_w/_user_metrics |
USERID | OpenCode02 | REGISTER | | | | | |
2008-04-14T12:39:05,830 | OpenCodeARMGTID_test_w/_user_metrics |
USERID | OpenCode02 | START | ACj/
ADExOUUzQkI3LUJGQTgtNDlBOS04RTg1LUVDOTJCRTQ2RTY4OA== |
ACj/AEY3MjJDNDJCLTAxNkEtNDMxNy1BNzc4LTc2OTA5Mjg1QzRGNQ== | |
1523810345.831000 | |
2008-04-14T12:39:05,847 | SAS | USERID | PROCEDURE | START |
ACj/AEY3MjJDNDJCLTAxNkEtNDMxNy1BNzc4LTc2OTA5Mjg1QzRGNQ== |
ACj/AERGNDc3OEFELTlCNzItNEE3NC1CNjNFLTU5OTI2QTFERTQ4Ng== | |
1523810345.847000 | |
2008-04-14T12:39:05,955 | SAS | USERID | PROCEDURE | STOP |
ACj/AEY3MjJDNDJCLTAxNkEtNDMxNy1BNzc4LTc2OTA5Mjg1QzRGNQ== |
ACj/AERGNDc3OEFELTlCNzItNEE3NC1CNjNFLTU5OTI2QTFERTQ4Ng== |
GOOD | 1523810345.847000 | 1523810345.956000 | 0.109000
2008-04-14T12:39:05,972 | SAS | USERID | PROCEDURE | START |
ACj/AEY3MjJDNDJCLTAxNkEtNDMxNy1BNzc4LTc2OTA5Mjg1QzRGNQ== |
ACj/AEQ5QkY3MkE3LTVBMzQtNDg1Qi05MUQyLUI0MjZDMzE2MDk0NA== | |
1523810345.972000 | |
2008-04-14T12:39:06,128 | SAS | USERID | PROCEDURE | STOP |
ACj/AEY3MjJDNDJCLTAxNkEtNDMxNy1BNzc4LTc2OTA5Mjg1QzRGNQ== |
ACj/AEQ5QkY3MkE3LTVBMzQtNDg1Qi05MUQyLUI0MjZDMzE2MDk0NA== |
GOOD | 1523810345.972000 | 1523810346.128000 | 0.156000
2008-04-14T12:39:06,190 | OpenCodeARMGTID_test_w/_user_metrics |
USERID | OpenCode02 | STOP |
ACj/ADExOUUzQkI3LUJGQTgtNDlBOS04RTg1LUVDOTJCRTQ2RTY4OA== |
ACj/AEY3MjJDNDJCLTAxNkEtNDMxNy1BNzc4LTc2OTA5Mjg1QzRGNQ== |
GOOD | 1523810345.831000 | 1523810346.191000 | 0.360000
2008-04-14T12:39:06,237 | OpenCodeARMGTID_test_w/_user_metrics |
USERID | | TERM | | | | | |
2008-04-14T12:39:06,284 | SAS | USERID | SAS | STOP | |
ACj/ADExOUUzQkI3LUJGQTgtNDlBOS04RTg1LUVDOTJCRTQ2RTY4OA== |
GOOD | 1523810344.972000 | 1523810346.285000 | 1.313000
2008-04-14T12:39:06,299 | SAS | USERID | | TERM | | | | | |
2008-04-14T12:39:04,924 DEBUG [00000003] Logging (l4sasutil.c:830) -
Loading the tk4afile support extension (1.0.0).
2008-04-14T12:39:04,924 DEBUG [00000003] Logging.Appender.File
(tk4afile.c:1082) - Creating FileAppender LOG
2008-04-14T12:39:04,924 DEBUG [00000003] Logging.Appender.File
(tk4afile.c:1082) - Creating FileAppender ARM2LOG
2008-04-14T12:39:04,924 DEBUG [00000003] Logging.Appender.File
(tk4afile.c:1082) - Creating FileAppender ARM4LOG
2008-04-14T12:39:04,955 DEBUG [00000003] Logging (l4sasutil.c:830) -
Loading the tk4aarm4 support extension (1.0.0).
2008-04-14T12:39:04,955 DEBUG [00000003] Logging.Appender.ARM
(tk4aarm4.c:1192) - Creating ARM Appender ARM
2008-04-14T12:39:04,955 DEBUG [00000003] Logging.Appender.ARM
(tk4aarm4.c:1345) - Created ARM Appender ARM (0x1fa5f40)
2008-04-14T12:39:04,955 DEBUG [00000003] Logging.Appender.ARM
(tk4aarm4.c:947) - ARM Appender SetOption(GetTimes, TRUE)
2008-04-14T12:39:04,972 INFO [00000003] Perf.ARM.SAS.APPL
(tka_api.c:275) - INIT SAS 13eec00 I,1523810344.972000,1,0.062500,
0.453125,SAS,
2008-04-14T12:39:04,972 INFO [00000003] Perf.ARM.SAS.APPL
(tka_2api.c:576) - REGISTER SAS 13eee58 G,1523810344.972000,1,1,
SAS,MVA SAS session
2008-04-14T12:39:04,972 INFO [00000003] Perf.ARM.SAS.APPL
(tka_api.c:1107) - START SAS 13eee58 0 S,1523810344.972000,1,1,1,
0.062500,0.453125
2008-04-14T12:39:04,972 INFO [00000003] Perf.ARM.SAS.PROC
(tka_2api.c:576) - REGISTER PROCEDURE 13ef148 G,1523810344.972000,
1,2,PROCEDURE,PROC START/STOP,PROC_NAME,ShortStr,
PROC_IO,Count64,PROC_MEM,Count64,PROC_LABEL,LongStr
2008-04-14T12:39:05,299 INFO [00000008] App.Program (ynl4sas.c:123) - 1
The SAS System 12:39 Monday, April 14, 2008
2008-04-14T12:39:05,299 INFO [00000008] App.Program (ynl4sas.c:123) -
2008-04-14T12:39:05,299 INFO [00000008] App.Program (ynl4sas.c:123) -
NOTE: Copyright (c) 2002-2008 by SAS Institute Inc., Cary, NC, USA.
2008-04-14T12:39:05,299 INFO [00000008] App.Program (ynl4sas.c:123) -
NOTE: SAS (r) Proprietary Software 9.2 (TS2B0)
2008-04-14T12:39:05,299 INFO [00000008] App.Program (ynl4sas.c:123) -
Licensed to SAS Institute Inc., Site 0000000001.
2008-04-14T12:39:05,299 INFO [00000008] App.Program (ynl4sas.c:123) -
NOTE: This session is executing on the XP_PRO platform.
2008-04-14T12:39:05,315 INFO [00000008] App.Program (ynl4sas.c:123) -
2008-04-14T12:39:05,315 INFO [00000008] App.Program (ynl4sas.c:123) -
2008-04-14T12:39:05,315 INFO [00000008] App.Program (ynl4sas.c:123) -
...
Copyright © 2010 by SAS Institute Inc., Cary, NC, USA. All rights reserved.