AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.01.2020, 14:26   #1  
oleggy is offline
oleggy
Участник
 
279 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
Спасибо. Я вот сейчас думаю если пакетник будет выполняться на выделенном aos то по хорошему он должен сохранять лог по стандартному маршруту в папку аксапты. Вы не подскажете какой стандартный путь принят в AX когда она сама сохраняет свои логи. В соответствующей папке программы в programs files в папке аксапты? Или как?
Старый 29.01.2020, 20:23   #2  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
317 / 878 (30) +++++++
Регистрация: 23.10.2012
Кто является потребителем данной информации?
Для каких целей это необходимо? Это отладка или статистика?
Возможно, лучше реализовать специальную таблицу и вставлять записи в неё?

Последний раз редактировалось Товарищ ♂uatr; 29.01.2020 в 20:41.
Старый 30.01.2020, 10:03   #3  
Krasher is offline
Krasher
Участник
Аватар для Krasher
 
48 / 37 (2) +++
Регистрация: 14.05.2005
Цитата:
Сообщение от oleggy Посмотреть сообщение
Вы не подскажете какой стандартный путь принят в AX когда она сама сохраняет свои логи.
Меня не покидает ощущение, что стандартного info() для решения описанной задачи должно хватить. Куда уж стандартнее. Просмотр через журнал пакетных заданий по кнопке "Журнал". Вывод в infolog из транзакции можно вынести, если так ценно не терять выводимые данные. Пробовали? Не подходит? Только текстовый файл? Только хардкор?
Старый 01.02.2020, 08:01   #4  
oleggy is offline
oleggy
Участник
 
279 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
В продолжении темы.
Согласен info тоже удобен. Но в нем очень неудобно осуществлять навигацию, если записей очень много получается. Трудно даже ползунок сдвинуть.

Подскажите еще.

Вопрос 1
Пакетник ведет лог в файл, все хорошо. Но при работе есть случаи когда происходит вывод сообщений в инфолог из глубины различных методов.
Соответственно на финише получается такая картина, лог выводится в файл и выводится инфолог в котором масса сообщения тоже.
Невозможно понять в рамках какой строки лога выводились конкретное сообщения в инфоологе.

Мне было бы удобнее к каждой строке лога текстового файла добавлять текстовое значение из инфолога которое были выведены. Только вопрос: Как сообщение извлечь из инфолога в текстовую переменную? И главное что бы это сообщение из инфолога было без эффекта накопления..

Вопрос 2
Я использую класс для вывода сообщений System.IO.StreamWriter (код из примера):
X++:
static void Job_StreamWriter(Args _args)
{
    System.IO.StreamWriter sw;
    InteropPermission perm = new InteropPermission(InteropKind::ClrInterop);
    ;

    perm.assert();

    sw = new System.IO.StreamWriter(@"C:\test.txt");
    sw.WriteLine("Line 1");
    sw.WriteLine("Line 2");
    sw.Flush();
    sw.Close();
    sw.Dispose();

    CodeAccessPermission::revertAssert();
}
Пытался указать:
X++:
sw = new System.IO.StreamWriter(@"%USERPROFILE%\test.log");
Но система выводит ошибку "Объект "CLRObject" не может быть создан".
Похоже она не понимает переменные окружения.
Нужно для того что если пакетник выполняется вручную на сервере соответственно сохранить возможно лог только в папку текущего пользователя запустившего пакетник.

Вопрос 3
Возможно ли как то узнать какая ошибка генерируется в случае когда выводится ошибка "Объект "CLRObject" не может быть создан".
Это нужно для того что бы обрабатывать различные ошибки. Как в вопросе выше.
Если нет доступа к пути то нужно выводить такое сообщение.
Создавал вот такую конструкцию:
X++:
try
    {
        sw = new System.IO.StreamWriter(@"%USERPROFILE%\test.log");
        if (!sw)
        {
            throw error('ошибка');
        }
    }
    //catch(Exception::CLRError)
    catch(Exception::Error)
    {
        info("свой текст ошибки");
    }
Но ни в каком случае свой текст ошибки не выводится. Выводится только "Объект "CLRObject" не может быть создан".

Последний раз редактировалось oleggy; 01.02.2020 в 08:29.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX2009: как в Job реализовать прогресс бар? oleggy DAX: Программирование 5 14.02.2020 05:04
Полноценное восстановление записей, используя лог Pustik DAX: Программирование 2 20.07.2012 20:31
Реализация службы информ. сообщений. А у Вас есть? ski DAX: Функционал 4 12.06.2011 23:02
DAX2009 не дружит с VS2010 oleg_e DAX: Администрирование 2 17.06.2010 10:34
Вопросы по OLAP в DAX2009 oleg_e DAX: Функционал 9 10.12.2008 02:02
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:18.