#include <stdarg.h>#define Max_len 1024x768BOOLDebug_mode;//Use the same method as printfvoidlprintf (Const Char*FMT, ...) {Static BOOLPrint_time =true;//Whether to print time: When Debug_mode is true and last is the end of a newline character. CharMessage[max_len];//Current time.time_t timer = time (NULL); Strftime (Message, at,"[%y-%m -%d %h:%m:%s] ", LocalTime (&timer)); Va_list args; Va_start (args, FMT); VSNPRINTF (Message + A, Max_len- A, FMT, args); Va_end (args);if(Debug_mode) {printf ("%s", Message + A); }intFD = open (Log_file, o_wronly | O_creat | O_append, S_IRUSR | S_IWUSR);if(FD = =-1) {perror ("Open (log)"); }Else{if(Print_time = =false) {if(Write (FD, message + A, strlen (Message + A)) ==-1) Perror ("lprintf"); }Else{if(Write (FD, message, strlen (message)) = =-1) Perror ("lprintf"); } Print_time = (Message[strlen (message)-1] =='\ n'); Close (FD); }}
Print and output log/log to file (C + +)