1. परिचय
C भाषा प्रणाली विकास र एम्बेडेड प्रणाली जस्ता धेरै क्षेत्रहरूमा प्रयोग गरिने प्रोग्रामिङ भाषा हो। विशेष गरी लग आउटपुट कार्यले प्रोग्रामको व्यवहारलाई दृश्यात्मक बनाउँछ, डिबगिङ र त्रुटि पत्ता लगाउन अनिवार्य तत्व बनिन्छ। यस लेखमा, C भाषामा लगको आधारभूत कुराबाट, प्रभावकारी लग व्यवस्थापनका विधिहरू सम्मलाई समग्र रूपमा व्याख्या गर्नेछौं। लग आउटपुटसँग सम्बन्धित आधारभूत ज्ञान र अनुप्रयोग प्रविधिहरू बुझेर, वास्तविक विकासमा उपयोगी बनाइनेछ।
2. C भाषा को गणितीय फलन「log」बारेमा
C भाषामा, गणितीय गणनाका लागि मानक फलन「log」उपलब्ध छ। यस खण्डमा, log फलनको सारांश र आधारभूत प्रयोग विधि बारे व्याख्या गरिन्छ।
「log」फलनको सारांश र प्रयोग
「log」फलन C भाषा को गणित पुस्तकालय(math.h
)मा परिभाषित प्राकृतिक लघुगणक(आधार e को लघुगणक)गणना गर्ने फलन हो। यो फलन सांख्यिकीय विश्लेषण र वैज्ञानिक गणनामा प्रायः प्रयोग हुने फलनहरूमध्ये एक हो।
#include <math.h>
double result = log(10.0); // 10 को प्राकृतिक लघुगणक गणना
प्राकृतिक लघुगणक र सामान्य लघुगणकको भिन्नता
प्राकृतिक लघुगणक आधार e को लघुगणक हो, तर सामान्य लघुगणक(आधार 10)माlog10
फलन प्रयोग गरेर गणना गरिन्छ।
double result = log10(100.0); // 100 को सामान्य लघुगणक गणना
त्रुटि ह्यान्डलिङ
「log」फलनमा नकारात्मक संख्या वा 0 पास गर्दा त्रुटि हुन्छ, त्यसैले इनपुट जाँच आवश्यक छ।
if (number > 0) {
result = log(number);
} else {
printf("सकारात्मक संख्या प्रविष्ट गर्नुहोस्
");
}
3. C भाषा मा लग आउटपुट को मूलभूत
लग आउटपुटले प्रोग्रामको व्यवहार जाँच गर्न, समस्या पत्ता लगाउन र समाधान गर्न मद्दत गर्छ। यहाँ, मानक आउटपुट प्रयोग गरेर मूलभूत लग आउटपुट र फाइल आउटपुटको विधिहरूको बारेमा व्याख्या गरिन्छ।
मानक आउटपुट प्रयोग गरेर मूलभूत लग आउटपुट
मानक आउटपुट प्रयोग गरेर लग देखाउन, printf
प्रयोग गर्नुहोस्।
#include <stdio.h>
int main() {
printf("प्रोग्राम सुरु
");
int x = 5;
printf("x को मान: %d
", x);
return 0;
}
फाइलमा लग आउटपुट
फाइलमा लग रेकर्ड गर्न, fopen
द्वारा फाइल खोल्नुहोस्, र fprintf
द्वारा लग लेख्नुहोस्।
#include <stdio.h>
int main() {
FILE *logfile = fopen("log.txt", "w");
if (logfile != NULL) {
fprintf(logfile, "प्रोग्राम सुरु
");
fclose(logfile);
} else {
printf("लॉग फाइल बनाउने असफल भयो
");
}
return 0;
}
4. लग स्तरको सेटिङ र व्यवस्थापन
लग स्तर सेट गरेर, सन्देशको महत्त्व अनुसार आउटपुट नियन्त्रण गर्न सकिन्छ। तल प्रत्येक स्तरको भूमिका र कार्यान्वयन उदाहरणहरू छन्।
लग स्तरको सारांश
- DEBUG: विस्तृत डिबग जानकारी
- INFO: सामान्य सञ्चालन जानकारी
- WARN: चेतावनी सन्देश
- ERROR: त्रुटि सन्देश
- FATAL: घातक त्रुटि
लग स्तर अनुसार आउटपुट नियन्त्रण
#define LOG_LEVEL_DEBUG 0
#define LOG_LEVEL_INFO 1
#define LOG_LEVEL_WARN 2
int current_log_level = LOG_LEVEL_WARN;
void log_message(int level, const char *message) {
if (level >= current_log_level) {
printf("[%d] %s
", level, message);
}
}

5. म्याक्रो प्रयोग गरेर कुशल लग आउटपुट
लगमा फाइलनाम र लाइन नम्बर जस्ता जानकारीहरू स्वचालित रूपमा थप्नको लागि म्याक्रो प्रयोग गर्न सकिन्छ।
#include <stdio.h>
#define LOG(level, message) printf("[%s] %s:%d - %sn", level, __FILE__, __LINE__, message)
int main() {
LOG("INFO", "प्रोग्राम सुरु");
return 0;
}
6. मल्टिथ्रेड वातावरणमा लग आउटपुट
मल्टिथ्रेड वातावरणमा, एक्सक्लुसन नियन्त्रण गर्नुपर्छ, र धेरै थ्रेडहरूबाट लग आउटपुट प्रतिस्पर्धा नगर्नु आवश्यक छ।pthread_mutex
प्रयोग गरेर एक्सक्लुसन नियन्त्रण सम्भव हुन्छ।
#include <stdio.h>
#include <pthread.h>
pthread_mutex_t log_mutex;
void log_message(const char *message) {
pthread_mutex_lock(&log_mutex);
FILE *logfile = fopen("log.txt", "a");
if (logfile != NULL) {
fprintf(logfile, "%sn", message);
fclose(logfile);
}
pthread_mutex_unlock(&log_mutex);
}
int main() {
pthread_mutex_init(&log_mutex, NULL);
log_message("थ्रेडबाटको सन्देश");
pthread_mutex_destroy(&log_mutex);
return 0;
}
7. बाह्य पुस्तकालयहरू प्रयोग गरेर लग व्यवस्थापन
log4c लाइब्रेरी प्रयोग गरेर, लग आउटपुटलाई अझ उन्नत रूपमा व्यवस्थापन गर्न सकिन्छ।
log4c को स्थापना र आधारभूत सेटिङ
log4c.rootCategory=INFO, R
log4c.appender.R=RollingFileAppender
log4c.appender.R.fileName=mylogfile.log
log4c.appender.R.layout=PatternLayout
log4c.appender.R.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4c को कोड उदाहरण
#include <log4c.h>
int main() {
log4c_init();
log4c_category_t* mycat = log4c_category_get("mycategory");
log4c_category_log(mycat, LOG4C_PRIORITY_INFO, "प्रोग्राम सुरु");
log4c_fini();
return 0;
}
8. सारांश
यस लेखमा, C भाषा मा लगको मूलभूतदेखि उन्नत प्रयोगसम्म व्याख्या गरिएको छ।लगको मूलभूत आउटपुट विधिबाट लग स्तरको सेटिङ, बाह्य लाइब्रेरीको उपयोगसम्म सिकेर, उपयुक्त लग व्यवस्थापनद्वारा प्रोग्रामको विश्वसनीयता र मर्मत सम्भार क्षमतालाई बढाउने तरिका बुझ्नुभएको होला।पाठकहरूले वास्तविक रूपमा प्रोग्राममा लग कार्यक्षमता लागू गरी, डिबग दक्षता सुधार र समस्या समाधानमा सहयोग पाउने आशा गर्दछौं।