【新增】Luban.Client和Luban.Server 新增 -l (--loglevel) 参数,允许按理日志级别。另外,对于 <= DEBUG的日志级别,打印日志代码位置

【优化】特殊优化 Luban.Client 由于未设置 LUBAN_SERVER_IP 环境变量导致-h 参数为空而运行失败的问题,此时默认取 127.0.0.1 并打印警告日志。
main v3.1.0
walon 2021-07-29 15:48:15 +08:00
parent 75cc8e969f
commit 54685289af
3 changed files with 33 additions and 6 deletions

View File

@ -26,6 +26,8 @@ namespace Luban.Client
public bool Verbose { get; set; }
public string LogLevel { get; set; } = "INFO";
public string CacheMetaInfoFile { get; set; } = ".cache.meta";
public string[] WatchDir { get; set; }
@ -47,6 +49,7 @@ Options:
-p --port <port> port. default 8899
-j --job <job> Required. job type. avaliable value: cfg
-v --verbose verbose print
-l --loglevel <level> log level. default INFO. avaliable value: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF
-c --cachemetafile <file> cache meta file name. default is '.cache.meta'
-w --watch <dir> watch data change and regenerate.
-h --help show usage
@ -67,8 +70,16 @@ Options:
case "-h":
case "--host":
{
// 打个补丁。好多人忘了设置 LUBAN_SERVER_IP 环境变量,导致启动时出问题
if (args[i + 1].StartsWith("-"))
{
Console.WriteLine("[WARN] --host (or -h) <LUBAN_SERVER_IP> argument is missing, use 127.0.0.1 as default. do you forget to set LUBAN_SERVER_IP env variable?");
ops.Host = "127.0.0.1";
}
else
{
ops.Host = args[++i];
}
break;
}
case "-p":
@ -89,6 +100,12 @@ Options:
ops.Verbose = true;
break;
}
case "-l":
case "--loglevel":
{
ops.LogLevel = args[++i];
break;
}
case "-c":
case "--cachemetafile":
{
@ -148,7 +165,7 @@ Options:
CommandLineOptions options = parseResult.Item2;
profile.StartPhase("init logger");
LogUtil.InitSimpleNLogConfigure(NLog.LogLevel.Info);
Luban.Common.Utils.LogUtil.InitSimpleNLogConfigure(NLog.LogLevel.FromString(options.LogLevel));
s_logger = NLog.LogManager.GetCurrentClassLogger();
profile.EndPhaseAndLog();

View File

@ -5,8 +5,15 @@ namespace Luban.Common.Utils
public static void InitSimpleNLogConfigure(NLog.LogLevel minConsoleLogLevel)
{
var logConfig = new NLog.Config.LoggingConfiguration();
//var layout = NLog.Layouts.Layout.FromString("${longdate}|${level:uppercase=true}|${threadid}|${message}${onexception:${newline}${exception:format=tostring}${exception:format=StackTrace}}");
var layout = NLog.Layouts.Layout.FromString("${longdate}|${message}${onexception:${newline}${exception:format=tostring}${exception:format=StackTrace}}");
NLog.Layouts.Layout layout;
if (minConsoleLogLevel <= NLog.LogLevel.Debug)
{
layout = NLog.Layouts.Layout.FromString("${longdate}|${level:uppercase=true}|${callsite}:${callsite-linenumber}|${message}${onexception:${newline}${exception:format=tostring}${exception:format=StackTrace}}");
}
else
{
layout = NLog.Layouts.Layout.FromString("${longdate}|${message}${onexception:${newline}${exception:format=tostring}${exception:format=StackTrace}}");
}
logConfig.AddTarget("console", new NLog.Targets.ColoredConsoleTarget() { Layout = layout });
logConfig.AddRule(minConsoleLogLevel, NLog.LogLevel.Fatal, "console");
NLog.LogManager.Configuration = logConfig;

View File

@ -16,6 +16,9 @@ namespace Luban.Server
{
[Option('p', "port", Required = false, HelpText = "listen port")]
public int Port { get; set; } = 8899;
[Option('l', "loglevel", Required = false, HelpText = "log level. default INFO. avaliable value: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF")]
public string LogLevel { get; set; } = "INFO";
}
private static CommandLineOptions ParseOptions(String[] args)
@ -41,7 +44,7 @@ namespace Luban.Server
var options = ParseOptions(args);
Luban.Common.Utils.LogUtil.InitSimpleNLogConfigure(NLog.LogLevel.Info);
Luban.Common.Utils.LogUtil.InitSimpleNLogConfigure(NLog.LogLevel.FromString(options.LogLevel));
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);