停止 RODBC 将信息记录到 stderr
Stop RODBC logging info to stderr
我有一个 C# 项目,我在其中使用进程 class 到 运行 R 脚本:
public void RunRScriptFile(string file) {
StringBuilder eventLog = new StringBuilder();
StringBuilder errorLog = new StringBuilder();
var scriptRunProcess = new Process {
StartInfo = new ProcessStartInfo {
FileName = "Rscript",
Arguments = file,
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = false
}
};
scriptRunProcess.Start();
while (!scriptRunProcess.StandardOutput.EndOfStream) {
eventLog.AppendLine(scriptRunProcess.StandardOutput.ReadLine());
}
while (!scriptRunProcess.StandardError.EndOfStream) {
errorLog.AppendLine(scriptRunProcess.StandardError.ReadLine());
}
Log.AddEvent(new List<String>() { "Info" }, eventLog.ToString());
if (errorLog.Length > 0) Log.AddEvent(new List<string>() { "Info", "Warning", "Critical" }, errorLog.ToString());
}
我 运行 的 R 脚本使用 RODBC 连接到数据库以获取数据。但是,每当我 运行 通过我的 RODBC 连接进行查询时,它会将 ODBC 驱动程序日志记录信息(跟踪设置为 0)打印到进程 StandardError。我怎样才能让它把它记录到信息中或者根本不记录它?我希望能够使用标准错误来实际检测错误,但我无法做到这一点,因为始终存在错误流。
我有一个 C# 项目,我在其中使用进程 class 到 运行 R 脚本:
public void RunRScriptFile(string file) {
StringBuilder eventLog = new StringBuilder();
StringBuilder errorLog = new StringBuilder();
var scriptRunProcess = new Process {
StartInfo = new ProcessStartInfo {
FileName = "Rscript",
Arguments = file,
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = false
}
};
scriptRunProcess.Start();
while (!scriptRunProcess.StandardOutput.EndOfStream) {
eventLog.AppendLine(scriptRunProcess.StandardOutput.ReadLine());
}
while (!scriptRunProcess.StandardError.EndOfStream) {
errorLog.AppendLine(scriptRunProcess.StandardError.ReadLine());
}
Log.AddEvent(new List<String>() { "Info" }, eventLog.ToString());
if (errorLog.Length > 0) Log.AddEvent(new List<string>() { "Info", "Warning", "Critical" }, errorLog.ToString());
}
我 运行 的 R 脚本使用 RODBC 连接到数据库以获取数据。但是,每当我 运行 通过我的 RODBC 连接进行查询时,它会将 ODBC 驱动程序日志记录信息(跟踪设置为 0)打印到进程 StandardError。我怎样才能让它把它记录到信息中或者根本不记录它?我希望能够使用标准错误来实际检测错误,但我无法做到这一点,因为始终存在错误流。