private BMyLog4PB NewLog()
            {
                if (App == null || GlobalArgs == null)
                {
                    return(null);
                }

                BMyLog4PB TempLogger;
                string    verbosity = GlobalArgs.getOption("LogLevel")[0]?.Trim() ?? "error";

                if (verbosity.Equals("OFF"))
                {
                    TempLogger = null;
                }
                else
                {
                    TempLogger = new BMyLog4PB(this.App);
                    switch (verbosity)
                    {
                    case "trace":
                        TempLogger.Filter = BMyLog4PB.E_TRACE | BMyLog4PB.E_DEBUG | BMyLog4PB.E_INFO | BMyLog4PB.E_WARN | BMyLog4PB.E_ERROR | BMyLog4PB.E_FATAL;
                        break;

                    case "debug":
                        TempLogger.Filter = BMyLog4PB.E_DEBUG | BMyLog4PB.E_INFO | BMyLog4PB.E_WARN | BMyLog4PB.E_ERROR | BMyLog4PB.E_FATAL;
                        break;

                    case "info":
                        TempLogger.Filter = BMyLog4PB.E_INFO | BMyLog4PB.E_WARN | BMyLog4PB.E_ERROR | BMyLog4PB.E_FATAL;
                        break;

                    case "warn":
                        TempLogger.Filter = BMyLog4PB.E_WARN | BMyLog4PB.E_ERROR | BMyLog4PB.E_FATAL;
                        break;

                    case "error":
                        TempLogger.Filter = BMyLog4PB.E_ERROR | BMyLog4PB.E_FATAL;
                        break;

                    case "fatal":
                        TempLogger.Filter = BMyLog4PB.E_FATAL;
                        break;

                    default:
                        TempLogger.Filter = BMyLog4PB.E_ERROR | BMyLog4PB.E_FATAL;
                        break;
                    }
                    foreach (KeyValuePair <string, string> logMsg in LogMessages)
                    {
                        TempLogger.SetMessage(logMsg.Key, logMsg.Value);
                    }

                    TempLogger.AutoFlush = true;
                    TempLogger.AddAppender(new BMyLog4PB.BMyTextPanelAppender(GlobalArgs.getOption("LogLCD")[0]?.Trim() ?? "[BCC-LOG]", App));
                    TempLogger.Info("L1");
                }
                return(TempLogger);
            }
        /// <summary>
        /// Handles display for dotnet new command without parameters.
        /// </summary>
        /// <param name="args">command arguments.</param>
        /// <param name="cancellationToken">cancellation token.</param>
        /// <returns></returns>
        internal async Task <NewCommandStatus> DisplayCommandDescriptionAsync(
            GlobalArgs args,
            CancellationToken cancellationToken)
        {
            IEnumerable <ITemplateInfo> curatedTemplates = await GetCuratedListAsync(cancellationToken).ConfigureAwait(false);

            Reporter.Output.WriteLine(string.Format(
                                          LocalizableStrings.TemplateInformationCoordinator_DotnetNew_Description,
                                          Example.For <NewCommand>(args.ParseResult)));

            Reporter.Output.WriteLine();

            Reporter.Output.WriteLine(string.Format(
                                          LocalizableStrings.TemplateInformationCoordinator_DotnetNew_TemplatesHeader,
                                          Example.For <NewCommand>(args.ParseResult)));
            TemplateGroupDisplay.DisplayTemplateList(
                _engineEnvironmentSettings,
                curatedTemplates,
                new TabularOutputSettings(_engineEnvironmentSettings.Environment),
                reporter: Reporter.Output);

            Reporter.Output.WriteLine(LocalizableStrings.TemplateInformationCoordinator_DotnetNew_ExampleHeader);
            Reporter.Output.WriteCommand(
                Example
                .For <NewCommand>(args.ParseResult)
                .WithArgument(NewCommand.ShortNameArgument, "console"));

            Reporter.Output.WriteLine();

            Reporter.Output.WriteLine(LocalizableStrings.TemplateInformationCoordinator_DotnetNew_DisplayOptionsHint);
            Reporter.Output.WriteCommand(
                Example
                .For <NewCommand>(args.ParseResult)
                .WithArgument(NewCommand.ShortNameArgument, "console")
                .WithHelpOption());

            Reporter.Output.WriteLine(LocalizableStrings.TemplateInformationCoordinator_DotnetNew_ListTemplatesHint);

            Reporter.Output.WriteCommand(
                Example
                .For <NewCommand>(args.ParseResult)
                .WithSubcommand <ListCommand>());

            Reporter.Output.WriteLine(LocalizableStrings.TemplateInformationCoordinator_DotnetNew_SearchTemplatesHint);
            Reporter.Output.WriteCommand(
                Example
                .For <NewCommand>(args.ParseResult)
                .WithSubcommand <SearchCommand>()
                .WithArgument(SearchCommand.NameArgument, "web"));

            Reporter.Output.WriteLine();

            return(NewCommandStatus.Success);
        }