मैं अपने 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
}
}
1 उत्तर
आपकी समस्या लकड़हारा नहीं है। आपकी समस्या यह है कि Windows सेवा को कैसे डिबग करें।
विजुअल स्टूडियो के साथ, आप इसे इस तरह से कर सकते हैं:
- डीबग सूचना के साथ अपनी विंडोज सेवा संकलित करें।
- सेवा स्थापित करें और इसे चलाएं।
- विजुअल स्टूडियो शुरू करें।
- "डीबग" चुनें -> "प्रक्रिया संलग्न करें"
- "सभी उपयोगकर्ताओं से प्रक्रियाएं दिखाएं" पर क्लिक करें
- अपनी सेवा खोजें और "संलग्न करें" पर क्लिक करें।
- "सामान्य भाषा रनटाइम" चुनें
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।