не удалось получить блокировку для файла .log в Java - PullRequest
4 голосов
/ 18 апреля 2011

Я использую Logger из среды Restlet с FileHandler для регистрации моего приложения в производственном режиме.Тем не менее, я всегда получаю Исключение «Невозможно создать FileHandler для Logger: Не удалось получить блокировку для test.log».Как я могу решить это?Вот код:

FileHandler aFileHandler = new FileHandler("test.log");

Formatter aFormatter = new SimpleFormatter();

aFileHandler.setFormatter(aFormatter);

aLogger.setLevel(Level.ALL);

aLogger.addHandler(aFileHandler);

Этот файл журнала используется несколькими более чем одним процессом одновременно.

И кроме файла .log, много других файлов, таких какmsgstr ".log.1, .log.2 ....." созданы.Кто-нибудь знает почему?

Ответы [ 4 ]

2 голосов
/ 09 ноября 2011

Я тоже получил ту же ошибку, но когда я проверил путь к файлу, он был неправильным, поэтому после исправления пути он работал нормально. Просто проверьте путь, если он правильный.

2 голосов
/ 18 апреля 2011

Вы должны предоставить полные имена классов.Logger & FileHandler неоднозначны.Тем не менее, я полагаю, что вы используете какой-то регистратор, например Log4j и RollingFileAppender, поэтому ваши файлы вращаются, например, xxx.log.1 & xxx.log.2.Ваш файл используется другим процессом / приложением, поэтому вы не можете заблокировать этот файл.

0 голосов
/ 02 сентября 2017

Для меня регистратор не имел доступа для записи в каталог, в котором должен быть создан файл журнала.Поэтому я просто изменил путь к тому, где полный доступ был гарантирован (например, FileHandler aFileHandler = new FileHandler("D:\\test.log");, и проблема исчезла.

Я предполагаю, что в любом случае, потому что я не указал какой-либо конкретный путь к файлу(например, FileHandler("test.log");, после развертывания моей веб-службы с использованием tomcat файл журнала пытался создать в Catalina base directory или в другом месте, где нет доступа для записи.

0 голосов
/ 28 октября 2016

Для вопроса о "многих других файлах, таких как" .log.1, .log.2 ..... "были созданы", вы должны удалить обработчик файлов журнала и закрыть его, когда он вам не нужен. Вот код для вашей справки. log.removeHandler(fileHandler); fileHandler.close();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...