В настоящее время я пытаюсь записать данные в системный журнал, и для этого я использую оператор «Runtime.getRuntime().exec» в java. Полное заявление:
Runtime.getRuntime().exec("logger " + data.toString());
Теперь это работает отлично, но кажется слишком простым, и я хотел знать, имеет ли прямое использование этого плохие последствия. Кроме того, если есть лучшие способы записи данных (кроме библиотеки log4j) в системный журнал, я открыт для этого. Спасибо.




Вы создаете новый процесс для каждой отдельной записи в журнале, что ужасно дорого. Кроме того, вы можете подвергнуться инъекционным атакам, передав data.toString() в командную строку. Делайте то, что, вероятно, делает библиотека Log4j (у нее открытый исходный код, если вам нужно вдохновение) и отправляйте сообщения UDP. Это дешево, и это также портативно.
Протокол определен в rfc5424 и rfc5426, если вы хотите написать сетевой код с нуля.
большое спасибо, это сработало. Мне нужно немного поработать над моим поиском в Google. Нужно использовать правильные ключевые слова, лол.
На самом деле log4j тоже отлично работает. Но я застрял, потому что всякий раз, когда я регистрируюсь с помощью log4j, имя хоста, отображаемое в журнале, является «localhost», и я просто не могу обойти это. Есть идеи?