标准输出不打印每一行的日期和时间
Standard output does not print date and time for each line
我目前有一个标准输出进程,它在我的控制台应用程序中执行 CMD 命令并将输出打印到日志文件。
问题?
在打印输出之前,它只会打印一次当前日期和时间。
示例 - 来自日志 .txt 文件
我想达到什么目的?
例子
当前代码
static readonly string logPath = (@"C:\Temp\Test.txt");
public static void Main()
{
StreamWriter logFile = new(logPath, append: true);
var proccess = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = "/c tsm start",
UseShellExecute = false,
RedirectStandardOutput = true
}
};
proccess.Start();
while (!proccess.StandardOutput.EndOfStream)
{
string output = proccess.StandardOutput.ReadToEnd();
if (output.Contains("successfully executed"))
{
logFile.WriteLine(DateTime.Now + " " + output);
}
}
把输出拆分出来,逐行写就可以了。
if (output.Contains("successfully executed"))
{
var lines = output.Split(new [] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
logFile.WriteLine(DateTime.Now + " " + line);
}
}
我目前有一个标准输出进程,它在我的控制台应用程序中执行 CMD 命令并将输出打印到日志文件。
问题?
在打印输出之前,它只会打印一次当前日期和时间。
示例 - 来自日志 .txt 文件
我想达到什么目的?
例子
当前代码
static readonly string logPath = (@"C:\Temp\Test.txt");
public static void Main()
{
StreamWriter logFile = new(logPath, append: true);
var proccess = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = "/c tsm start",
UseShellExecute = false,
RedirectStandardOutput = true
}
};
proccess.Start();
while (!proccess.StandardOutput.EndOfStream)
{
string output = proccess.StandardOutput.ReadToEnd();
if (output.Contains("successfully executed"))
{
logFile.WriteLine(DateTime.Now + " " + output);
}
}
把输出拆分出来,逐行写就可以了。
if (output.Contains("successfully executed"))
{
var lines = output.Split(new [] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
logFile.WriteLine(DateTime.Now + " " + line);
}
}