Я использую команду logger bash из моего процесса java для записи сообщений в файл / var / log / messages в RHEL7. Вот код:
private ArrayList<String> execCommand(String cmd) throws Exception
{
ArrayList<String> result = new ArrayList<>();
try
{
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader error = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String str;
while((str = input.readLine()) != null)
result.add(str);
StringBuilder buf = new StringBuilder();
while((str = error.readLine()) != null)
buf.append(str).append("\n");
str = buf.toString();
if(str.length() != 0)
throw new Exception(str);
}
catch(Exception e)
{
SLogger.log(e);
throw e;
}
return result;
}
, и я вызываю этот метод следующим образом:
execCommand("logger my message");
Команда работает нормально, и она печатает сообщение в / var / log / messages . Вот сообщение:
31 марта 12:13:02 dev-rh root: мое сообщение
Но я ожидал, что оно покажет имя процесса java вместо root. Как мне заставить его печатать имя процесса вместо root.