From 86a4594e7f530b9dddd0bd5879afe872780d3180 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 2 Aug 2014 00:40:38 -0700 Subject: [PATCH] Initialize logging based on passed in parameters --- src/charles.cc | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/charles.cc b/src/charles.cc index eed31fd..17a7ba4 100644 --- a/src/charles.cc +++ b/src/charles.cc @@ -28,7 +28,8 @@ int verbosity = 0; static void usage(const char *progname) { - fprintf(stderr, "Usage: %s [-hv] [-o ] \n", progname); + fprintf(stderr, "Usage: %s [-hv] [-l ] [-L ] [-o ] \n", + progname); } @@ -37,12 +38,9 @@ main(int argc, const char *argv[]) { using namespace charles::log; - using charles::log::Log; Scene scene; - Log::Init("charles.log", 50); - scene.get_ambient().set_intensity(1.0); #if 0 @@ -75,23 +73,40 @@ main(int argc, PointLight *l1 = new PointLight(Vector3(6.0, -4.0, 2), Color::White, 1.0); scene.add_light(l1); + std::string logFilename; + unsigned int logLevel = 0; + std::string outfile, infile; int opt; - while ((opt = getopt(argc, (char *const *)argv, "ho:v")) != -1) { + while ((opt = getopt(argc, (char *const *)argv, "hl:L:o:v:")) != -1) { switch (opt) { case 'h': usage(argv[0]); + exit(0); + break; + case 'l': + logFilename = optarg; + break; + case 'L': + logLevel = std::stoul(optarg); break; case 'o': outfile = optarg; break; case 'v': - ++verbosity; break; } } + /* Set up logging */ + if (logLevel > 0) { + if (logFilename.empty()) { + logFilename = "charles.log"; + } + Log::Init(logFilename, logLevel); + } + if (optind >= argc) { LOG_ERROR << "Input file required."; fprintf(stderr, "Input file required.\n"); @@ -119,7 +134,9 @@ main(int argc, PNGWriter writer; scene.write(writer, outfile); - Log::Close(); + if (logLevel > 0) { + Log::Close(); + } return 0; }