cのログライブラリ

12571 ワード

cのjsonライブラリはいつそれを書き終える気持ちがあるか分かりません
ネットとか見てからcのjsonライブラリに行ってみようと思います
最近また新しいおもちゃがあって、天猫書店のキャプチャコードを作って、phpで書いて、それをcで繰り返して、手を練習するつもりです~~
ヘッダファイル
//
//  log.h
//  tmail_spider
//
//  Created by bikang on 16/9/20.
//  Copyright (c) 2016  bikang. All rights reserved.
//

#ifndef __tmail_spider__log__
#define __tmail_spider__log__


#include 
#include
#include 
#include "common.h"

//error string
#define ERROR_STR() (errno == 0 ? "no error":strerror(errno))

//error
#define LOG_ERROR(M,...)\
fprintf(stderr, "[error](%s:%d,strerror:%s)"M"",__FILE__,__LINE__,ERROR_STR(),##__VA_ARGS__);

//info
#define LOG_INFO(M,...)\
fprintf(stderr, "[error](%s:%d)"M"",__FILE__,__LINE__,##__VA_ARGS__);


//error in file
void log_file(char* cate,int cate_len,const char *filename,const char *str,int len);
void log_error_file(const char *filename,const char *str,int len);
void log_info_file(const char *filename,const char *str,int len);

//error in file more data         








#endif /* defined(__tmail_spider__log__) */

インプリメンテーション
//
//  log.c
//  tmail_spider
//
//  Created by bikang on 16/9/20.
//  Copyright (c) 2016  bikang. All rights reserved.
//
#include 
#include 
#include "log.h"

#define ERROR_STR "error|"
#define ERROR_STR_LEN 6
#define INFO_STR "info|"
#define INFO_STR_LEN 5


void log_file(char* cate,int cate_len,const char *filename,const char *str,int len){
    FILE *fp = fopen(filename, "a+");
    if(fp != NULL){
        char date_str[30];
        getLocalTime(date_str,1);
        fwrite(date_str, strlen(date_str), 1, fp);
        fwrite(cate, cate_len, 1, fp);
        fwrite(str, len, 1, fp);
        fwrite("
"
, 2, 1, fp); fclose(fp); } return; } void log_error_file(const char *filename,const char *str,int len){ log_file(ERROR_STR,ERROR_STR_LEN,filename,str,len); } void log_info_file(const char *filename,const char *str,int len){ log_file(INFO_STR,INFO_STR_LEN,filename,str,len); }

パブリックファイル
//
//  common.h
//  tmail_spider
//
//  Created by bikang on 16/9/20.
//  Copyright (c) 2016  bikang. All rights reserved.
//

#ifndef __tmail_spider__common__
#define __tmail_spider__common__

#include 


void getLocalTime(char*date_str,int flag);


#endif /* defined(__tmail_spider__common__) */

インプリメンテーション
//
//  common.c
//  tmail_spider
//
//  Created by bikang on 16/9/20.
//  Copyright (c) 2016  bikang. All rights reserved.
//

#include "common.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <sys/time.h>

void getLocalTime(char*date_str,int flag){
    struct tm *nowdate;
    time_t now;
    time(&now);
    nowdate = localtime(&now);
    if(flag == 1){
        sprintf(date_str,"%d-%02d-%02d %02d:%02d:%02d|",(nowdate->tm_year+1900),nowdate->tm_mon+1,nowdate->tm_mday,nowdate->tm_hour,nowdate->tm_min,nowdate->tm_sec);
    }else{
        sprintf(date_str,"%d-%02d-%02d %02d:%02d:%02d",(nowdate->tm_year+1900),nowdate->tm_mon+1,nowdate->tm_mday,nowdate->tm_hour,nowdate->tm_min,nowdate->tm_sec);
    }
}


テスト
//
//  main.c
//  tmail_spider
//
//  Created by bikang on 16/9/20.
//  Copyright (c) 2016  bikang. All rights reserved.
//

#include
#include
#include
#include
#include "log.h"
#include "common.h"

//test error
void test_error();
//test log
void test_show_error();
//test file log
void test_file_error();


int main(int argc, const char * argv[]) {
    //test_error();
    //test_show_error();
    test_file_error();
    return 0;
}

void test_file_error(){
    char filename[20] = "/tmp/1.txt";
    char mesg[20] = "error mesg  ";
    log_error_file(filename,mesg,sizeof(mesg));
    log_info_file(filename,mesg,sizeof(mesg));

    printf("log file end");
}


void test_show_error(){
    printf("
"
); LOG_ERROR("error"); printf("
"
); LOG_INFO("info"); } void test_error() { printf("error:%s
"
,strerror(1)); FILE*fp; extern int errno; char*message; if(NULL==(fp=fopen("/dev/dsp","r+"))) { printf("errno=%d
"
,errno); message=strerror(errno); printf("Mesg:%s
"
,message); } //exit(0); }