我试图将命令提示符中打印出来的信息从JAVA控制台显示到C#。当在JAVA中发出System.out.println时,它可以很好地工作,但是它不能用于logger.info print out。
注意:当我通过windows命令提示符(CMD>java-jar testbed.jar)运行它时,记录器信息会在命令提示符中打印出来。
JAVA来做一个简单的增量和减量数字,当按下按钮进行增量或减量时,通过记录器打印出来。(此代码不能更改)
private static int ValueInteger = 0 ;
static Logger l;
public TestBed() {
initComponents();
try{
l = Logger.getLogger("");
FileHandler fh = new FileHandler("main.log", false);
l.addHandler(fh);
l.setLevel(Level.ALL);
l.fine("Logger Created - JTSRunner.main()");
}catch(Exception ex){}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
ValueInteger--;
// System.out.println(Integer.toString(ValueInteger));
l.info(Integer.toString(ValueInteger));
}
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
ValueInteger++;
// System.out.println(Integer.toString(ValueInteger));
l.info(Integer.toString(ValueInteger));
}
处理并打印到文本框上的C#代码(我正在处理的代码):
private void Button_Click(object sender, RoutedEventArgs e)
{
ProcessStartInfo startInfo = new ProcessStartInfo("cmd", "/k java -jar Testbed.jar ")
{
WorkingDirectory = "C:\\Testbed",
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
};
Process process = Process.Start(startInfo);
process.OutputDataReceived += writeCommandInfo;
process.BeginOutputReadLine();
//process.WaitForExit();
}
private void writeCommandInfo(object sender, DataReceivedEventArgs e)
{
if (e.Data != null)
{
this.Text.Dispatcher.Invoke(new Action(() => this.Text.Text = e.Data.ToString()), DispatcherPriority.Normal, null);
}
}
默认的java.util.logging
属性文件配置ConsoleHandler,它将消息记录到System.err
(源代码),这就是为什么消息出现在命令提示符中。但是,由于您的C#代码只重定向标准输出,而不重定向标准错误(RedirectStandardError
),因此进程无法捕获消息。
尝试将RedirectStandardError
属性设置为true。
好的,所以我试图使内存appender(简单的记录器,日志到ArrayList而不是控制台或文件),但现在我想禁用它从打印到控制台。 问题和网站,到目前为止我已经读过了(但我仍然不知道它是什么)。。 StackOverFlow问题log4j:将特定类的输出记录到特定附加器 它包含了我想要实现的所有部分,但我仍然有点困惑。 我也读了这段Logback或Log4j附加解释的状态... 但是,如果log
问题内容: 我的C程序粘贴在下面。在bash中,程序打印“ char is”,不打印Ω。我的语言环境均为en_US.utf8。 问题答案: 这很有趣。显然,编译器将omega从UTF-8转换为UNICODE,但libc某种程度上将其弄乱了。 首先:-format说明符期望一个(即使在wprintf -version 中也是如此),因此您必须指定(并因此指定字符串)。 其次,如果您像这样将语言环境设
这是@MatthewD的问题“如何写入Netbeans调试器控制台(Java)”的后续问题 对于NetBeans断点,可以分别使用、和打印行号、类名和线程名。方法名称是否也有类似的表达式? 我测试了和,搜索了NetBeans JPDA API和NetBeans Wiki,但没有找到任何结果。我宁愿在断点的属性中编写,而不是名称本身,因为名称不能被复制粘贴或用作模板。
我试图使用TDD(测试驱动开发)与。当我使用时,不会到控制台。 我正在使用来运行它。 似乎说默认情况下它应该工作:http://pytest.org/latest/capture.html 但是: 没有任何东西被打印到我的标准输出控制台(只是正常的进度和多少测试通过/失败)。 我正在测试的脚本包含打印: 在模块中,默认情况下打印所有内容,这正是我所需要的。但是,出于其他原因,我希望使用。 有人知道
我们可以dsable日志打印一些自定义创建记录器吗? 我想禁用文件记录器控制台中的打印消息
问题语句:我有一个在Xcode中运行的程序,它有一堆print()语句,可以很好地将输出打印到调试控制台。然而,我希望也能够将这些输出重定向到一个文件,这样我就可以让用户将它们发送给我,作为调试的一种方式。 SO上找到的解决方案使我可以将输出重定向到文件,但调试控制台输出将丢失。 问:我想要我的蛋糕和吃它。我希望能够将print()语句重定向到调试控制台和文件。 所以我有引用:https://st