diff --git a/src/Luban.Client/Source/Program.cs b/src/Luban.Client/Source/Program.cs index ba9d68d..d52b04c 100644 --- a/src/Luban.Client/Source/Program.cs +++ b/src/Luban.Client/Source/Program.cs @@ -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. default 8899 -j --job Required. job type. avaliable value: cfg -v --verbose verbose print + -l --loglevel log level. default INFO. avaliable value: TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF -c --cachemetafile cache meta file name. default is '.cache.meta' -w --watch watch data change and regenerate. -h --help show usage @@ -67,8 +70,16 @@ Options: case "-h": case "--host": { - - ops.Host = args[++i]; + // 打个补丁。好多人忘了设置 LUBAN_SERVER_IP 环境变量,导致启动时出问题 + if (args[i + 1].StartsWith("-")) + { + Console.WriteLine("[WARN] --host (or -h) 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(); diff --git a/src/Luban.Common/Source/Utils/LogUtil.cs b/src/Luban.Common/Source/Utils/LogUtil.cs index 3c99316..13420b1 100644 --- a/src/Luban.Common/Source/Utils/LogUtil.cs +++ b/src/Luban.Common/Source/Utils/LogUtil.cs @@ -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; diff --git a/src/Luban.Server/Source/Program.cs b/src/Luban.Server/Source/Program.cs index 68f7dff..6f8a56b 100644 --- a/src/Luban.Server/Source/Program.cs +++ b/src/Luban.Server/Source/Program.cs @@ -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);