logswan

Fast Web log analyzer using probabilistic data structures
Log | Files | Refs | README | LICENSE

commit 619b321bdcafab044714ea172d92eb706935c0a6
parent 2c29c6af1750e4f94ad50eca171d201e1ce868c7
Author: Frederic Cambus <fcambus@users.sourceforge.net>
Date:   Sun, 28 Jun 2015 15:12:00 +0200

Save JSON output in a file instead of displaying it on stdout

Diffstat:
Msrc/logswan.c | 17++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/logswan.c b/src/logswan.c @@ -53,7 +53,7 @@ int statusCode; int hour; struct stat logFileSize; -FILE *logFile; +FILE *logFile, *jsonFile; const char *errstr; @@ -90,16 +90,22 @@ int main (int argc, char *argv[]) { printf("Processing file : %s\n\n", argv[1]); logFile = fopen(argv[1], "r"); - if(!logFile) { + if (!logFile) { perror("Can't open log file"); - return 1; + return EXIT_FAILURE; } - /* Create output file name */ + /* Create output file */ int outputLen = strlen(argv[1]) + 6; char *outputFile = malloc(outputLen); snprintf(outputFile, outputLen, "%s%s", argv[1], ".json"); + jsonFile = fopen(outputFile, "w"); + if (!jsonFile) { + perror("Can't create output file"); + return EXIT_FAILURE; + } + while (fgets(lineBuffer, LINE_MAX_LENGTH, logFile) != NULL) { /* Parse and tokenize line */ parseLine(&parsedLine, lineBuffer); @@ -171,7 +177,8 @@ int main (int argc, char *argv[]) { printf("Processed %" PRIu64 " lines in %f seconds\n", results.processedLines, results.runtime); fclose(logFile); - output(results); + fputs(output(results), jsonFile); + fclose(jsonFile); return EXIT_SUCCESS; }