2012-10-23 94 views
2

我有一个基本的C#控制台应用程序,它从一个网站回顾日志,但像100行后,旧的日志被删除,用户不能向上滚动并看到它们,有没有办法增加它将节省的大小?C#增加控制台日志大小

+0

没有你的应用程序需要在屏幕上显示日志?而不是写入日志文件。 –

+0

嗨,我试图生成一个日志file.txt,但它似乎对我来说太难了,因为我是一个新手..如果你有一个好的啧啧告诉我该怎么做,这将是很好的:P – user1769042

+2

这很可能比你需要更先进的,但log4net似乎是一个很好的记录器:http://logging.apache.org/log4net/ –

回答

9

Console.SetBufferSize()向您购买更大的缓冲区。但是有一些复杂性。最大大小有一个上限,并且SetBufferSize()方法中的参数验证代码中存在一个错误。它报告Int16.MaxValue是你可以请求的最多的行数。这是一个错误的错误。在Windows 7中,可以使用:

static void Main(string[] args) { 
    Console.SetBufferSize(Console.BufferWidth, 32766); 
    // etc.. 
} 

在旧版本的操作系统(例如XP)有一个更严格的限制,使用被限制在65536个字节的缓冲区大小。我再也没有他们去检查了。在那些可能有效的代码是:

static void Main(string[] args) { 
     var lines = 65536/2/Console.BufferWidth; 
     Console.SetBufferSize(Console.BufferWidth, lines); 
     // etc.. 
    }