【问题标题】:LogEntries without a .config file in a .NET application.NET 应用程序中没有 .config 文件的 LogEntries
【发布时间】:2015-05-05 01:11:55
【问题描述】:

我正在阅读来自here 的.NET 应用程序的日志记录文章。 我想在不使用 .config 文件的情况下做等效的功能。有没有人有代码示例? 谢谢

【问题讨论】:

    标签: .net logentries


    【解决方案1】:

    当然,我们可以做到这一点。对于 nlog,我们可以执行以下操作。

            class Program
            {
                public static LogentriesTarget target = new LogentriesTarget();
                private static Logger logger = LogManager.GetCurrentClassLogger();
                static void Main(string[] args)
                {
                    var config = new LoggingConfiguration();
                    target.Token = "LOG_TOKEN";
                    target.Ssl = false;
                    target.Debug = true;
                    target.Name = "Logentries";
                    target.Layout = "${date:format=ddd MMM dd} ${time:format=HH:mm:ss} ${date:format=zzz yyyy} ${logger} : ${LEVEL}, ${message}";
                    target.HttpPut = false;
                    config.AddTarget("Logentries2", target);
                    var loggingRule = new LoggingRule("*", LogLevel.Debug, target);
                    LogManager.Configuration.AddTarget("targetName", target);
                    LogManager.Configuration.LoggingRules.Add(loggingRule);
                    LogManager.Configuration.Reload();
                    logger = LogManager.GetCurrentClassLogger();
                }
            }
    

    对于 log4net,我们可以执行以下操作。

            class Program
            {
                private static readonly ILog logger = LogManager.GetLogger(typeof(Program));
                static void Main(string[] args)
                {
                    LogentriesAppender appender = new LogentriesAppender();
                    appender.Token = "YOUR_TOKEN";
                    appender.Name = "LogentriesAppender";
                    PatternLayout layout = new PatternLayout();
                    layout.ConversionPattern = "%d{ddd MMM dd HH:mm:ss zzz yyyy} %logger %: %level%, %m,";
                    layout.ActivateOptions();
                    appender.Layout = layout;
                    Logger l = (Logger)logger.Logger;
                    l.AddAppender(appender);
                    logger.Debug("Hi");
                }
            }
    

    最后另一种选择是使用Serilog 将您的日志数据发送给我们。

    问候, 斯蒂芬

    【讨论】:

      【解决方案2】:

      我认为这段代码是错误的......你能检查一下吗?顺便说一句,我是这样工作的:

          target.Token = "LOG_TOKEN";
          target.Ssl = false;
          target.Debug = true;
          target.Name = "Logentries";
          target.Layout = "${date:format=ddd MMM dd} ${time:format=HH:mm:ss} ${date:format=zzz yyyy} ${logger} : ${LEVEL}, ${message}";
          target.HttpPut = false;
      
          var config = new LoggingConfiguration();
          config.AddTarget("Logentries", target);
      
          var loggingRule = new LoggingRule("*", LogLevel.Debug, target);
          config.LoggingRules.Add(loggingRule);
      
          LogManager.Configuration = config;
          LogManager.Configuration.Reload();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-17
        • 2012-11-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-04
        • 2014-04-09
        • 2014-03-14
        相关资源
        最近更新 更多