954,136 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

newbie: C-Program write to /var/log/mylog via syslog

I have a C program I am writing and need this program to write to syslog and have the logs in a separate file for my program.

Eg. My program is called "example.c", then I want to have a log file called "example.log" in /var/log. Do I define log file "example.log"in syslogd.conf file?
Or have the C-Program to write to this file via syslog?

I want to have the message in the format yyyy/mm/dd 24HR:MM:SS LOG_TYPE: MESSAGE

I need to have date and time in format yyyy/mm/dd 24HR:MM:SS. Log_type is an severity of error. and MESSAGE is acutal error message.

Any suggestions in doing this in C?

jobs
Junior Poster in Training
58 posts since Jan 2007
Reputation Points: 10
Solved Threads: 0
 

Look for C file operations and also how to get the system date. A little googling will do.

yagiD
Light Poster
35 posts since Dec 2007
Reputation Points: 11
Solved Threads: 7
 

Do you really want your operating system to do the logging? Or do you only need a file created with log entries in it?

WaltP
Posting Sage w/ dash of thyme
Moderator
10,492 posts since May 2006
Reputation Points: 3,348
Solved Threads: 943
 
Do you really want your operating system to do the logging? Or do you only need a file created with log entries in it?

WaltP I am pretty curious to know now, how would you make OS to log things for. As far i know it should have done by programmer itself isn't Or... am i going wrong somewhere

ssharish

ssharish2005
Posting Whiz in Training
253 posts since Dec 2006
Reputation Points: 73
Solved Threads: 20
 
WaltP I am pretty curious to know now, how would you make OS to log things for. As far i know it should have done by programmer itself isn't Or... am i going wrong somewhere


Only in your explanation. You said "I have a C program I am writing and need this program to write to syslog..." Syslog means system log, the log file for the system and I was simply wondering if you really meant what you said.

When you need to log a message, call a function that uses sprintf() to put the message together. Open the file, write the message, close the file.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,492 posts since May 2006
Reputation Points: 3,348
Solved Threads: 943
 

Only in your explanation. You said "I have a C program I am writing and need this program to write to syslog..." Syslog means system log, the log file for the system and I was simply wondering if you really meant what you said.

When you need to log a message, call a function that uses sprintf() to put the message together. Open the file, write the message, close the file.

Sorry i dint say that, perhaps u confused between the OP and me. I just question u. So there no feature in the OS which basically logs any events for the applications, instead we need to write ower own. Thats fine.

Thanks a lot

ssharish

ssharish2005
Posting Whiz in Training
253 posts since Dec 2006
Reputation Points: 73
Solved Threads: 20
 

there u go a pesudocode for u

void writetofile(char *log)
{
     open file
     check file open status
     
     build the log message with time and append the *log using sprintf
     
     write log to file
     
     close file
}


ssharish

ssharish2005
Posting Whiz in Training
253 posts since Dec 2006
Reputation Points: 73
Solved Threads: 20
 
Do you really want your operating system to do the logging? Or do you only need a file created with log entries in it?

I just want pass it to syslogd to do the logging in a separate file.

jobs
Junior Poster in Training
58 posts since Jan 2007
Reputation Points: 10
Solved Threads: 0
 

Then you need to look up how syslogd works. Google for it.

WaltP
Posting Sage w/ dash of thyme
Moderator
10,492 posts since May 2006
Reputation Points: 3,348
Solved Threads: 943
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You