これがすでに回答されている場合は申し訳ありません。最善を尽くして確認しました。
コンソールに情報を書き込むライブラリがあります。ライブラリを使用するアプリケーションでは、各行の先頭にタイムスタンプを書き込みながら、その出力をログ ファイルだけでなくコントロールにもリダイレクトしたいと考えています。これは私のクラスがどのように見えるかです:
class TextBoxStreamWriter : TextWriter
{
TextBox _output;
FileStream _stream;
StreamWriter _writer;
// constructor
public TextBoxStreamWriter(TextBox output)
{
_output = output;
_stream = new FileStream(@"C:\example.log", FileMode.OpenOrCreate, FileAccess.Write);
_writer = new StreamWriter(_stream);
_writer.AutoFlush = true;
}
// override methods
public override void Write(char value)
{
base.Write(value);
_output.AppendText(value.ToString());
_writer.Write(value);
}
public override void WriteLine(string value)
{
base.WriteLine(DateTime.Now.ToString("[yyyy/MM/dd HH:mm:ss]\t") + value);
}
Console.WriteLine()
もちろん、これはあなたが使用している限りうまくいくようです。しかし、XMLWriter の出力をコンソールに送信しようとすると、これは をバイパスしConsole.WriteLine()
、タイムスタンプなしで行の出力を開始します。一例は次のとおりです。
protected void WriteXMLToConsole(XmlDocument xmlDocument)
{
XmlTextWriter writer = new XmlTextWriter(Console.Out);
writer.Formatting = Formatting.Indented;
xmlDocument.WriteContentTo(writer);
writer.Flush();
Console.WriteLine();
}
助言がありますか?
ご協力いただきありがとうございます!