2016-02-24 3 views
2

Я понимаю, что PROC PRINTTO LOG="C:TEMP\SAS LOG.TXT" выводит все содержимое журнала программы SAS, но это также существенно оставляет окно журнала незаполненным во время работы программы, и я не могу просмотреть ' живой "прогресс программы SAS, так сказать.SAS: Печать в журнал и просмотр окна Live Log одновременно

Я хочу в конечном счете сохранить журнал для дальнейшего рассмотрения, но я также хочу следить за вещами, поскольку они происходят вживую, когда я запускаю тесты и т. Д. - есть ли способ распечатать журнал и сохранить содержимое журнала вживую, поскольку они происходят одновременно?

+0

какой тип системы вы используете и какой редактор SAS? – DomPazz

+0

Я запускаю SAS 9.3 на Windows 7 64-bit и использую стандартное окно редактора SAS для программирования - это дает вам то, что вам нужно? Прошу прощения, если мой жаргон не работает. – Foxer

+1

Все в порядке. Короткий ответ - нет, SAS разрешает только 1 поток для журнала. Я ДУМАЮ, что вы можете создать сценарий макроса IDE для сохранения содержимого окна. Поэтому запустите свою программу, посмотрите журнал, и, когда это будет сделано, горячая клавиша сохранит. Не 100% уверен, и мне не нужно это выяснять прямо сейчас. Лично в этих ситуациях я помещаю журнал в файл с помощью PRINTTO и смотрю его в текстовом редакторе с периодическим обновлением. – DomPazz

ответ

0

Если вы используете Enterprise Guide или любой из клиентов EBI, вы можете включить ведение журнала на сервере приложений. Это даст вам копию журнала вместе с вашим обычным журналом. Не будет работать для Base SAS, хотя ..

Шаги:

  1. Navigate к: [sasconfig] \ Lev1 \ SASApp \ WorkspaceServer
  2. Rename logconfig.xml в logconfig.xml.orig
  3. Переименов Logconfix.trace.xml к logconfig.xml
  4. Перезапустите объект Spawner

EDIT: если вы были счастливы принять последовательным - в отличие от одновременных - лесозаготовок, я бы рекомендовал подход, изложенный в ответе на этот question (в основном прочитать внешний файл журнал обратно и печать журнала сеанса)

0

Я согласен с предложением @ Reeza попробовать -altlog. К сожалению, этот параметр необходимо указать при вызове SAS. Один из способов, чтобы добавить строку в конфигурационный файл SAS (шахта находится в C: \ Program Files \ SASHome \ SASFoundation \ 9,4 \ NLS \ ан \ sasv9.cfg):

-altlog d:\junk\MySASaltlog.log 

Каждый раз, когда вы начинаете SAS, он будет писать в MySASaltlog.log в дополнение к вашему лог-окну. MySASaltlog.log перезаписывается для каждого сеанса. Вам нужно перепрыгнуть через несколько обручей, чтобы создать отдельный журнал для каждого сеанса.

Я думаю, что было бы здорово, если бы вы могли бы указать altlog на операторе опций во время сеанса SAS, например:

options altlog="d:\junk\MySASaltlog_%sysfunc(today(),yymmddn8)"; 

Если вы согласны, пожалуйста, как/upvote моей идеи ballotware SAS, которая предлагает следующее: https://communities.sas.com/t5/SASware-Ballot-Ideas/Allow-ALTLOG-to-be-specified-on-OPTIONS-statement/idi-p/219628

Другим подходом для ПК SAS является использование инструкции DM. Подавая следующее заявление будет копировать содержимое текущего окна журнала в MyLog_YYYYMDD.log:

dm "log; file ""d:\junk\MyLog_%sysfunc(today(),yymmddn8).log"" replace;"; 

Вы могли бы назначить эту команду для функциональной клавиши, а также.

Последняя мысль заключается в том, почему вы хотите сохранить журнал с интерактивной сессии SAS. Большинство людей используют интерактивные сеансы для разработки кода. Затем, когда они будут завершены, они отправят программу для финального запуска. Это позволяет начать с чистого сеанса SAS, а также автоматически записать файл журнала. При таком подходе редко бывает полезно сохранить файл журнала из интерактивного сеанса.

Смежные вопросы