Файл Log



  • При каждом запуске BAS формируется новый файл лога с новым названием даты и временем. Можно без костылей узнать имя нового файла лога?



  • Если кому вдруг понадобится мой костыль:

    1. Запустить процесс
    dir "c:\BrowserAutomationStudio\logs\log\" /O:D /B
    

    Указываем папку с логами.
    2. Первое вхождение

    (\d{4}\.\d{2}\.\d{2}\.\d{2}\.\d{2}\.\d{2}\.txt)$
    

    Получаем имя файла последнего лога.



  • Ни чего не понимаю, почему команда Первое вхождение не воспринимает символ окончания строки $ ? На проверке регулярки всё работает https://regex101.com/r/isNu8a/1

    Пока решил так:

    1. Запустить процесс
    dir "c:\BrowserAutomationStudio\logs\log\" /O:D /B
    

    Указываем папку с логами.
    2. Извлечь все данные

    \d{4}\.\d{2}\.\d{2}\.\d{2}\.\d{2}\.\d{2}\.txt
    

    Получаем все имена файлов лога.
    3. Последний элемент

    Теперь точно получаем именно самый новый файл лога.



  • @Fox Пока нет, только с костылями.



  • @Fox Воспринимает. Вот мой проект
    0_1495212586098_searchlastlog.xml



  • @support said in Файл Log:

    @Fox Воспринимает. Вот мой проект
    0_1495212586098_searchlastlog.xml

    Запустил только что ваш скрипт, из трёх файлов лога в шаблоне

    C:\BrowserAutomationStudio\apps\18.4.0>dir "C:\work\appslocal\logs\log\" /O:D /B 
    2017.05.14.08.56.42.txt
    2017.05.15.08.24.52.txt
    2017.05.15.23.56.03.txt
    

    Он выбрал самый старый, игнорируя символ окончания строки $.
    0_1495253843740_forum.png



  • @Fox Да, у меня тоже, я ошибся.

    Это из-за того, что действие Первое вхождение использует флаг multiline. Вот здесь описана его работа.
    https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp/multiline

    Но можно получить список со всеми вхождениями, а потом получить последний.
    0_1495311310529_searchlastlog.xml



  • @support said in Файл Log:

    Но можно получить список со всеми вхождениями, а потом получить последний.
    0_1495311310529_searchlastlog.xml

    Я же как раз постом выше этот способ описал, только проект не приложил.

    @Fox said in Файл Log:

    Пока решил так:

    Запустить процесс

    dir "c:\BrowserAutomationStudio\logs\log" /O:D /B

    Указываем папку с логами.

    Извлечь все данные

    \d{4}.\d{2}.\d{2}.\d{2}.\d{2}.\d{2}.txt

    Получаем все имена файлов лога.

    Последний элемент

    Теперь точно получаем именно самый новый файл лога.



  • @Fox Я понял, туплю.



  • @support Да всё норм :)



  • Добавлю сюда решение для корректного отображения кириллицы:

    1. Запустить процесс
    chcp 65001
    dir "c:\test\" /O:D /B
    

Log in to reply