Size: a a a

2017 April 24

А

Ариэна in Java Developers
Мне нужно от отсортировать лог файлы, по статусу ERROR по указанной дате (от до). При логгировании логи пишутся произвольно. Все прекрасно работает когда указана локальная директория.
Но когда вычесляю абсолютный путь в проекте лог файлы программа не находит
В чем может быть проблемма? ОС Ubuntu проект находиться в той директории где установлен Ubuntu.
Укажите на проблемму или куда копать что бы разобраться???
источник

LP

Luger Parabellum in Java Developers
код чтения файлов логов в студию
источник

А

Ариэна in Java Developers
1234.log
{
146.34.15.5    Pyton Kan    14.10.2016 11:38:21    SEND_REPORT    ERROR
146.34.15.5    Pyton Kan    14.10.2016 11:38:21    SEND_REPORT    OK
...
}
тут /* IP    User name    date        event    status*/
log файлов до фига, но не в этом суть

Ecть класс LoggerParser для сортировки данных в лог файлах по разным категориям. В Конструктор передаю обьект Path.
Вот при создании обьекта типа LoggerParser локальный адрес файла LogParser logParser = new LogParser(Paths.get("/media/han/Local Disk2/Logger/logs/")); Все гуд работает.

А вот если передать абсолютный путь прога не пашет ТОЛЬКО НА UBUNTU на виндовс работает

String location = Solution.class.getPackage().getName() + ".logs/";
File file = new File(str.replace('.', '/'));        

LogParser loggerParser = new LoggerParser(file.toPath().toAbsolutePath());

Сервер на Ubuntu и проект находиться в той директории где установлена это ОС.

В чем проблемма?
источник

LP

Luger Parabellum in Java Developers
+ ".logs/"
у тбея директория logs или .logs?
источник

А

Ариэна in Java Developers
директори logs
источник

LP

Luger Parabellum in Java Developers
а что такое str
источник

А

Ариэна in Java Developers
/**
    * Метод проходит по всем строкам log файлов и добавляет их в списко строк
    * @return список строк
    */
   private List<String> getLinesList()
   {
       String[] files = logDir.toFile().list(new FilenameFilter()
       {
           @Override
           public boolean accept(File dir, String name)
           {
               return name.endsWith(".log");
           }
       });

       List<String> lines = new ArrayList<>();
       for (String file : files)
       {
           try
           {
               lines.addAll(Files.readAllLines(Paths.get(logDir + File.separator + file), Charset.defaultCharset()));
           }
           catch (IOException e)
           {
               e.printStackTrace();
           }
       }
       return lines;
   }
источник

LP

Luger Parabellum in Java Developers
и location
источник

LP

Luger Parabellum in Java Developers
ты или код некоректно отредактировал перед отправкой в чат
источник

LP

Luger Parabellum in Java Developers
или вот тут полная фигня
источник

LP

Luger Parabellum in Java Developers
String location = Solution.class.getPackage().getName() + ".logs/";
File file = new File(str.replace('.', '/'));
источник

А

Ариэна in Java Developers
Luger Parabellum
String location = Solution.class.getPackage().getName() + ".logs/";
File file = new File(str.replace('.', '/'));
Тут когда писал наверное ошибся
String location = Solution.class.getPackage().getName() + ".logs/";
File file = new File(location.replace('.', '/'));
источник

LP

Luger Parabellum in Java Developers
ну а чего б не вывести file.toPath().toAbsolutePath() в консоль и посмотреть? у тебя прям папка logs в пакадже твоем лежит или в корне приложения)?
источник

LP

Luger Parabellum in Java Developers
почему она в пакете лежит?)
источник

LP

Luger Parabellum in Java Developers
это как минимум странно
источник

А

Ариэна in Java Developers
Так и делал
И эту строку пробовал передавать в конструктор, не пашет
источник

А

Ариэна in Java Developers
Не пашет только на УБУНТУ
на Виндовс работает
источник

LP

Luger Parabellum in Java Developers
Luger Parabellum
почему она в пакете лежит?)
?
источник

А

Ариэна in Java Developers
Да прям папка logs в проекте лежит
источник

LP

Luger Parabellum in Java Developers
Ариэна
Так и делал
И эту строку пробовал передавать в конструктор, не пашет
почему не сделать просто Paths.get("").toAbsolutePath().normalize().toString()
источник