java - 从 java 执行时在 eventcreate 描述消息中添加换行符

标签 java windows newline event-log stringescapeutils

我们正在尝试通过从 java 执行以下命令来创建 Windows 事件日志。 但无法在描述(/d)中添加换行符(\n)。

eventcreate/t error/id 100/l myApp/SO "mysource"/d "这是日志的第一行\n 这是第二行"

从java代码执行上面:Runtime.getRuntime().exec(command);

1.尝试添加 crl+l (^L) 而不是\n,但它仅适用于命令行,不适用于 java 代码。

最佳答案

终于找到解决方案了:

我们可以传递字符串数组,而不是将字符串作为参数传递给 .exec() 方法。通过这种方式,日志消息将\n 识别为新行。下面的代码片段现在可以工作了。

String[] command = {"eventcreate", "/t", "error", "/id","100","/l", "CustomApp", "/SO","CustomSource","/d","this is 1st line of the log \n this is second line"};       
Runtime.getRuntime().exec(command);

关于java - 从 java 执行时在 eventcreate 描述消息中添加换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33207364/

相关文章:

java - lambda表达式只适用于函数式接口(interface)吗?

Java Swing添加JPanel到JLayeredpane到Jframe动态改变大小

windows - Windows 上是否有用于 Node.js 的 node-waf?

java - 在 Windows Server 2012 上安装 TeamCity 时出现错误 "no sqljdbc_auth in java.library.path"

c++ - 可移植行尾(换行)

java - 来自 servlet 的 JSP 历史日志

java - 不允许使用 Spring Security j_spring_security_check 进行 Spring 启动

c++ - 我可以在不使用阻塞 I/O 的情况下在数据报套接字上调用 select

Mercurial - smartencode - smartdecode - 多个文件模式 - Mercurial.ini

java - 作为字符串一部分的新行字符