2015-11-19 2 views
0

У меня есть конечный объект статического логатора, который создается при первом выполнении основного метода. Если файл журнала не существует, он создается, а затем добавляется (используя API-интерфейс log4j, appender). Однако я хочу проверить, что машина, на которой запущено приложение, имеет каталог, созданный для сохранения приложения.Как я могу программно создать папку для хранения окончательного статического файла журнала, в Java

Проблема в том, что эта проверка/создание папки должна произойти до создания журнала и создания журнала при создании экземпляра класса. У меня стандартный способ справиться с этой проблемой, я хочу избежать повторного размещения всех операторов ведения журнала, чтобы сохранить статику журнала более предпочтительной?

+0

Вы хотите сказать "программно"? – EJP

+0

EJP, Извините, извините, что у меня нет орфографии, программно да. –

ответ

1

Вы можете использовать static initializer для достижения этой цели:

public class Foo { 
    static { 
     //check the directory 
     //initialize the logger 
    } 
} 

Этот статический initalizer будет запускаться при загрузке класса. Таким образом, вы можете проверить, существует ли каталог, прежде чем вы создадите регистратор.

+0

Это сработало хорошо, спасибо, это закончилось тем, что; public class Main { Статический журнал регистрации; static { String dir = "C:" + File.separator + "apslive" + File.separator + "SWQRImageExtraction"; // TODO Файл файла = новый Файл (dir); if (! File.exists()) { if (file.mkdir()) { System.out.println ("Directory Created:" + dir); } else { System.out.println («Не удалось создать каталог»); } } log = Logger.getLogger (Main.class); } \t ... } –

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