cのログライブラリ
12571 ワード
cのjsonライブラリはいつそれを書き終える気持ちがあるか分かりません
ネットとか見てからcのjsonライブラリに行ってみようと思います
最近また新しいおもちゃがあって、天猫書店のキャプチャコードを作って、phpで書いて、それをcで繰り返して、手を練習するつもりです~~
ヘッダファイル
インプリメンテーション
パブリックファイル
インプリメンテーション
テスト
ネットとか見てから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);
}