C# 增加控制台日志大小

标签 c#

我有一个基本的 C# 控制台应用程序,它从网站检索日志,但在大约 100 行之后,旧日志被删除,用户无法再向上滚动查看它们,有什么方法可以增加它的大小吗保存?

最佳答案

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..
    }

关于C# 增加控制台日志大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040574/

相关文章:

C#反编译

c# - 通过通用方式创建任何 C# 类的实例

c# - 既然可以直接访问成员变量,为什么还要使用私有(private)属性 setter 呢?

c# - 在 c# .Net 4 中替代 LoadingCache (guava)

c# - 删除时出现 WebAPI 405 错误

c# - 在 SSL/TLS 证书下,对 ASP.NET 的 Angular 请求返回 "Error Unknown"

c# - 从日期时间计算金额作为日期

c# - 使用 LINQ 更新 SQL 行中的每个字段而无需专门声明每个字段?

c# - 在模型 .net 核心 web api 中返回具有 null 必需属性的 BadRequest

c# - c# 根据用户输入选择mysql数据库