Skip to content

Commit 032277b

Browse files
committed
[增加]1. 增加日志的配置
1 parent d8dfc0a commit 032277b

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

GameFrameX.StartUp/Options/LauncherOptions.cs

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,61 @@ public sealed class LauncherOptions
9393
[Option(nameof(IsDebugReceiveHeartBeat), Default = false, HelpText = "是否打印接收的心跳数据,只有在IsDebugReceive为true时有效,默认值为false")]
9494
public bool IsDebugReceiveHeartBeat { get; set; }
9595

96+
/// <summary>是否输出到控制台,默认为 true。</summary>
97+
/// <remarks>控制日志是否同时在控制台显示,便于开发调试。</remarks>
98+
[Option(nameof(LogGrafanaLokiUsername), Default = false, HelpText = "是否输出到控制台,默认为 false。")]
99+
public bool LogIsConsole { get; set; } = false;
100+
101+
/// <summary>是否输出到 GrafanaLoki,默认为 false。</summary>
102+
[Option(nameof(LogIsGrafanaLoki), Default = false, HelpText = "是否输出到 GrafanaLoki,默认为 false。")]
103+
public bool LogIsGrafanaLoki { get; set; }
104+
105+
/// <summary>GrafanaLoki 服务地址,默认为 http://localhost:3100。</summary>
106+
[Option(nameof(LogGrafanaLokiUrl), Default = "http://localhost:3100", HelpText = "GrafanaLoki 服务地址,默认为 http://localhost:3100。当LogIsGrafanaLoki为true时生效。")]
107+
public string LogGrafanaLokiUrl { get; set; } = "http://localhost:3100";
108+
109+
/// <summary>GrafanaLoki 标签</summary>
110+
public IEnumerable<string> LogGrafanaLokiLabels { get; set; } = new List<string>();
111+
112+
/// <summary>GrafanaLoki 用户名或Email</summary>
113+
[Option(nameof(LogGrafanaLokiUsername), HelpText = "GrafanaLoki 用户名或Email,当LogIsGrafanaLoki为true时生效。")]
114+
public string LogGrafanaLokiUsername { get; set; }
115+
116+
/// <summary>GrafanaLoki 密码</summary>
117+
[Option(nameof(LogGrafanaLokiPassword), HelpText = "GrafanaLoki 密码,当LogIsGrafanaLoki为true时生效。")]
118+
public string LogGrafanaLokiPassword { get; set; }
119+
120+
/// <summary>日志滚动间隔,默认为每天(Day)。</summary>
121+
/// <remarks>决定日志文件创建新文件的时间间隔,可以是小时、天、月等。</remarks>
122+
[Option(nameof(LogRollingInterval), Default = RollingInterval.Day, HelpText = "日志滚动间隔,默认为每天(Day),日志滚动间隔(可选值:Minute[分], Hour[时], Day[天], Month[月], Year[年], Infinite[无限])")]
123+
public RollingInterval LogRollingInterval { get; set; } = RollingInterval.Day;
124+
125+
/// <summary>日志输出级别,默认为 Debug。</summary>
126+
/// <remarks>控制日志输出的最低级别,低于此级别的日志将不会被记录。</remarks>
127+
[Option(nameof(LogEventLevel), Default = LogEventLevel.Debug, HelpText = "日志输出级别,默认为 Debug,日志级别(可选值:Verbose[详细], Debug[调试], Information[信息], Warning[警告], Error[错误], Fatal[致命])")]
128+
public LogEventLevel LogEventLevel { get; set; } = LogEventLevel.Debug;
129+
130+
/// <summary>是否限制单个文件大小,默认为 true。</summary>
131+
/// <remarks>启用此选项可以防止单个日志文件过大。</remarks>
132+
[Option(nameof(LogIsFileSizeLimit), Default = true, HelpText = "是否限制单个文件大小,默认为 true。")]
133+
public bool LogIsFileSizeLimit { get; set; } = true;
134+
135+
/// <summary>
136+
/// 日志单个文件大小限制,默认为 100MB。
137+
/// 当 IsFileSizeLimit 为 true 时有效。
138+
/// </summary>
139+
/// <remarks>当日志文件达到此大小限制时,将创建新的日志文件继续写入。</remarks>
140+
[Option(nameof(LogFileSizeLimitBytes), Default = 104857600, HelpText = "日志单个文件大小限制,默认为 100MB。当 LogIsFileSizeLimit 为 true 时有效。")]
141+
public int LogFileSizeLimitBytes { get; set; } = 104857600;
142+
143+
/// <summary>
144+
/// 日志文件保留数量限制 默认为 31 个文件,即 31 天的日志文件
145+
/// 当 设置值为 null 时不限制文件数量
146+
/// </summary>
147+
/// <remarks>用于控制历史日志文件的数量,防止占用过多磁盘空间。</remarks>
148+
[Option(nameof(LogRetainedFileCountLimit), Default = 31, HelpText = "日志文件保留数量限制 默认为 31 个文件,即 31 天的日志文件")]
149+
public int? LogRetainedFileCountLimit { get; set; } = 31;
150+
96151
/// <summary>
97152
/// 服务器ID
98153
/// </summary>

0 commit comments

Comments
 (0)