监控远程log4.net日志

程序的日志一般以文件形式,数据库形式记录。可以通过配置文件配合控制台程序来实时监控日志。

远程的日志配置,增加【UdpAppender】。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>
    <root>
      <level value="All"></level>
      <!--指定将此级别及以上的log打印到log文件中(由低到高:Debug、Info、Warn、Error、Fatal)-->
      <additivity value="false"></additivity> 
      <appender-ref ref="UdpAppender"></appender-ref> 
    </root> 

    <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
      <localPort value="7170" />
      <remoteAddress value="10.10.10.60" />
      <remotePort value="7171" />
      <layout type="log4net.Layout.PatternLayout, log4net">
        <conversionPattern value="[%date] -- [%-5level] -- [%logger] [%property{NDC}] - %message%newline" />
 
      </layout>
    </appender>
  </log4net>
</configuration>

本地的监控工具,新建控制台程序,代码如下。

   using System;
    using System.Net;
    using System.Net.Sockets;

    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Watch Log4 Udp Message";

            Console.WriteLine("input listen port:");
            int port = Convert.ToInt32( Console.ReadLine());

            IPAddress address = IPAddress.Parse("127.0.0.1");
            IPEndPoint remoteEndPoint = new IPEndPoint(address, 0);
            UdpClient udpClient;
            byte[] buffer;
            string loggingEvent;

            try
            {
                udpClient = new UdpClient(port);

                Console.WriteLine(string.Format("listen remport udp at port {0} ok...",port));

                while (true)
                {
                    buffer = udpClient.Receive(ref remoteEndPoint);
                    loggingEvent = System.Text.Encoding.Default.GetString(buffer);

                    Console.ResetColor();
                    if (loggingEvent.Contains("[INFO]"))
                    {
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    else if (loggingEvent.Contains("[WARN]"))
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                    }
                    else  if (loggingEvent.Contains("[DEBUG]"))
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                    }
                    else if (loggingEvent.Contains("[ERROR]"))
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                    }
                    else if (loggingEvent.Contains("[Fatal]"))
                    {
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                    }
                    
                    Console.WriteLine(loggingEvent);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString()); 
            }
        }
    }

效果如下

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值