public void TranslateEventAndBack(string message)
        {
            // Arrange
            var service = new LogReceiverWebServiceTarget {
                IncludeEventProperties = true
            };

            var logEvent = new LogEventInfo(LogLevel.Debug, "logger1", message);

            var nLogEvents = new NLogEvents
            {
                Strings     = new StringCollection(),
                LayoutNames = new StringCollection(),
                BaseTimeUtc = DateTime.UtcNow.Ticks,
                ClientName  = "client1",
                Events      = new NLogEvent[0]
            };
            var dict2 = new Dictionary <string, int>();

            // Act
            var translateEvent = service.TranslateEvent(logEvent, nLogEvents, dict2);
            var result         = translateEvent.ToEventInfo(nLogEvents, "");

            // Assert
            Assert.Equal("logger1", result.LoggerName);
            Assert.Equal(message, result.Message);
        }
Exemple #2
0
        public void Test1()
        {
            var logger = LogManager.GetLogger("Aaa");
            var target = new LogReceiverWebServiceTarget();

            target.EndpointAddress = "http://notimportant:9999/";
            target.Parameters.Add(new MethodCallParameter("message", "${message}"));
            target.Parameters.Add(new MethodCallParameter("date", "${longdate}"));

            SimpleConfigurator.ConfigureForTargetLogging(target);
            logger.Info("aa");
        }
Exemple #3
0
        public App()
        {
            this.Startup            += this.Application_Startup;
            this.Exit               += this.Application_Exit;
            this.UnhandledException += this.Application_UnhandledException;

            InitializeComponent();

            LogManager.ThrowExceptions = true;

            var target = new LogReceiverWebServiceTarget();

            target.EndpointAddress = new Uri(HtmlPage.Document.DocumentUri, "NLogReceiver.svc").ToString();
            target.Parameters.Add(new MethodCallParameter("message", "${message}"));
            target.Parameters.Add(new MethodCallParameter("date", "${longdate}"));

            var buffer = new BufferingTargetWrapper(target)
            {
                BufferSize = 10, FlushTimeout = 1000
            };

            SimpleConfigurator.ConfigureForTargetLogging(buffer);
        }
        internal static void ConfigureLogging(
            LogDelegates.LogMethod logMethod
            , bool proxyLogging = false
            )
        {
            // logMethod (
            // Resource
            // .AppLoggingConfigHelper_ConfigureLogging_____Starting_logger_configuration_
            // ) ;

            LogFactory proxiedFactory = null;

            if (proxyLogging)
            {
                var proxyGenerator    = new ProxyGenerator();
                var loggerProxyHelper = new LoggerProxyHelper(proxyGenerator, DoLogMessage);
                var logFactory        = new MyLogFactory(DoLogMessage);
                var lConfLogFactory   = loggerProxyHelper.CreateLogFactory(logFactory);
                proxiedFactory = lConfLogFactory;
            }

            var fieldInfo = typeof(LogManager).GetField(
                "factory"
                , BindingFlags.Static
                | BindingFlags.NonPublic
                );

            if (fieldInfo != null)
            {
                logMethod($"field info is {fieldInfo.DeclaringType} . {fieldInfo.Name}");
                var cur = fieldInfo.GetValue(null);
                logMethod($"cur is {cur}");

                if (proxyLogging)
                {
                    fieldInfo.SetValue(null, proxiedFactory);
                    var newVal = fieldInfo.GetValue(null);
                    logMethod($"New Value = {newVal}");
                }
            }

            // var useFactory = proxyLogging ? proxiedFactory : LogManager.LogFactory;
            var lConf = new CodeConfiguration();

            var dict = LogLevel.AllLoggingLevels.ToDictionary(
                level => level
                , level => new List <Target>()
                );
            var errorTargets = dict[LogLevel.Error];
            var t            = dict[LogLevel.Trace];
            // var x = new EventLogTarget("eventLog") { Source = "Application Error" };
            // errorTargets.Add(x);

            var webServiceTarget = new LogReceiverWebServiceTarget("log");

            webServiceTarget.EndpointAddress = "http://xx1.mynetgear.com/LogService/ReceiveLogs.svc";// "http://localhost:27809/ReceiveLogs.svc";
            // webServiceTarget.EndpointConfigurationName = "log";
            dict[LogLevel.Debug].Add(webServiceTarget);



            #region Cache Target
#if false
            var cacheTarget = new  MyCacheTarget( );
            t.Add(cacheTarget);
#endif
            #endregion
            #region NLogViewer Target
            var viewer = Viewer();
            t.Add(viewer);
            #endregion
            #region Debugger Target
            if (DebuggerTargetEnabled)
            {
                var debuggerTarget =
                    new DebuggerTarget {
                    Layout = new SimpleLayout("${message}")
                };
                t.Add(debuggerTarget);
            }
            #endregion
            #region Chainsaw Target
            var chainsawTarget = new ChainsawTarget( );
            SetupNetworkTarget(chainsawTarget, "udp://xx1.mynetgear.com:4445");
            t.Add(chainsawTarget);
            #endregion
            t.Add(MyFileTarget());
            var jsonFileTarget = JsonFileTarget();
            t.Add(jsonFileTarget);
            var byType = new Dictionary <Type, int>();

            foreach (var target in dict.SelectMany(pair => pair.Value))
            {
                var type = target.GetType();
                byType.TryGetValue(type, out var count);
                count       += 1;
                byType[type] = count;

                if (target.Name == null)
                {
                    target.Name = $"{Regex.Replace(type.Name, "Target", "")}{count:D2}";
                }

                lConf.AddTarget(target);
            }

            foreach (var result in dict.Select(LoggingRule))
            {
                ((List <LoggingRule>)lConf.LoggingRules).AddRange(result);
            }

            LogManager.Configuration = lConf;
            Logger = LogManager.GetCurrentClassLogger();
        }