मैं अपने EasyLogger सी # प्रोजेक्ट को काम करने की कोशिश कर रहा हूं, लेकिन मैं इस कोड को डीबग नहीं कर सकता क्योंकि यह क्लास लाइब्रेरी है। मैं इस लॉगर का उपयोग विंडोज कंसोल एप्लिकेशन में करता हूं जो विंडोज सेवा के रूप में गिलहरी के साथ स्थापित है, इसलिए मैं नहीं देख सकता कि चर के अंदर क्या है ....

मैं क्या गलत कर रहा हूँ?

यह एक विंडोज कंसोल एप्लिकेशन में है:

        public void Start()
        {
            //Define EasyLogger
            EasyLogger.Logger.Loggerpath = @"C:\Development\ServerSF";
            EasyLogger.Logger.Logname = "Testlog";

            Thread.Sleep(1000);


            //Start EasyLogger
            bool test = EasyLogger.Logger.Log;
            EasyLogger.Logger.StartLog();

            if (test == true)
            {
                //Start service
                _timer.Start();
                ExThred(configManager.ServerName);
            }
            else
            {
                //ERROR log isnt started
            }
        }

यह मेरा EasyLogger प्रोजेक्ट है:

using System;
using System.IO;
using System.Text;

namespace EasyLogger
{
    public static class Logger
    {
        #region GET SET      
        private static string loggerpath;
        private static string logname;
        private static string message;
        private static bool log;
        public static string Loggerpath
        {
            get => loggerpath;
            set => loggerpath = value;
        }
        public static string Logname
        {
            get => logname;
            set => logname = value;
        }
        public static string Message
        {
            get => message;
            set => message = value;
        }
        public static bool Log
        {
            get => log;
            set => log = value;
        }
        #endregion

        #region Logger
        private static readonly string loggingpath = loggerpath + @"\logs\"+ logname + "-" + DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt";

        public static void StartLog()
        {
            if(loggerpath == null)
            {
                Message = "Program path is empty!";
                log = false;
            }
            else
            {
                try
                {
                    using (FileStream fs = File.Create(loggingpath))
                    {
                        byte[] info = new UTF8Encoding(true).GetBytes(DateTime.Now.ToString() + " - Logger v0.1 Started...");
                        fs.Write(info, 0, info.Length);
                    }
                    log = true;
                }
                catch
                {
                    Message = "Can't create logfile!";
                    log = false;
                }  
            }
        }

        public static void WriteLog(string msg)
        {
            if (Logname != null)
            {
                if (log == true)
                {
                    string[] lines = new string[] { DateTime.Now.ToString() + " - " + msg };
                    File.AppendAllLines(loggingpath, lines);
                }
                else
                {
                    try { Message = "Logger isn't started yet!"; }
                    catch { Message = "Logger Error!"; }
                }
            }
            else { Message = "Please define first a Logname!"; }
        }

        public static void StopLog()
        {
            log = false;
        }
        #endregion
    }
}
c#
0
KsBs 14 जुलाई 2020, 11:41

1 उत्तर

सबसे बढ़िया उत्तर

आपकी समस्या लकड़हारा नहीं है। आपकी समस्या यह है कि Windows सेवा को कैसे डिबग करें।

विजुअल स्टूडियो के साथ, आप इसे इस तरह से कर सकते हैं:

  1. डीबग सूचना के साथ अपनी विंडोज सेवा संकलित करें।
  2. सेवा स्थापित करें और इसे चलाएं।
  3. विजुअल स्टूडियो शुरू करें।
  4. "डीबग" चुनें -> "प्रक्रिया संलग्न करें"
  5. "सभी उपयोगकर्ताओं से प्रक्रियाएं दिखाएं" पर क्लिक करें
  6. अपनी सेवा खोजें और "संलग्न करें" पर क्लिक करें।
  7. "सामान्य भाषा रनटाइम" चुनें
2
SQL Police 14 जुलाई 2020, 11:55