#include "psensor_json.h"
#include "url.h"
#include "server.h"
+#include "slog.h"
static const char *DEFAULT_LOG_FILE = "/var/log/psensor-server.log";
static const char *program_name;
-#define DEFAULT_PORT 3131
+static const int DEFAULT_PORT = 3131;
#define PAGE_NOT_FOUND (_("<html><body><p>"\
"Page not found - Go to <a href='/'>Main page</a></p></body>"))
{"wdir", required_argument, 0, 'w'},
{"debug", required_argument, 0, 'd'},
{"log-file", required_argument, 0, 'l'},
+ {"sensor-log-file", required_argument, 0, 0},
{0, 0, 0, 0}
};
puts(_(" -d, --debug=LEVEL "
"set the debug level, integer between 0 and 3"));
puts(_(" -l, --log-file=PATH set the log file to PATH"));
+ puts(_(" -s, --sensor-log-file=PATH set the sensor log file to PATH"));
puts("");
printf(_("Report bugs to: %s\n"), PACKAGE_BUGREPORT);
int main(int argc, char *argv[])
{
struct MHD_Daemon *d;
- int port = DEFAULT_PORT;
- int optc;
- int cmdok = 1;
- char *log_file;
+ int port, opti, optc, cmdok;
+ char *log_file, *slog_file;
program_name = argv[0];
server_data.www_dir = NULL;
server_data.psysinfo.interfaces = NULL;
log_file = NULL;
-
- while ((optc = getopt_long(argc, argv,
- "vhp:w:d:", long_options, NULL)) != -1) {
+ slog_file = NULL;
+ port = DEFAULT_PORT;
+ cmdok = 1;
+
+ while ((optc = getopt_long(argc,
+ argv,
+ "vhp:w:d:l:",
+ long_options,
+ &opti)) != -1) {
switch (optc) {
case 'w':
if (optarg)
exit(EXIT_SUCCESS);
case 'd':
log_level = atoi(optarg);
- log_printf(LOG_INFO,
- _("Enables debug mode: %d"),
- log_level);
+ log_info(_("Enables debug mode: %d"), log_level);
break;
case 'l':
if (optarg)
log_file = strdup(optarg);
break;
+ case 0:
+ if (!strcmp(long_options[opti].name, "sensor-log-file"))
+ slog_file = strdup(optarg);
+ break;
default:
cmdok = 0;
break;
}
}
- if (!server_data.www_dir)
- server_data.www_dir = strdup(DEFAULT_WWW_DIR);
-
- if (!log_file)
- log_file = strdup(DEFAULT_LOG_FILE);
-
if (!cmdok || optind != argc) {
fprintf(stderr, _("Try `%s --help' for more information.\n"),
program_name);
exit(EXIT_FAILURE);
}
+ if (!server_data.www_dir)
+ server_data.www_dir = strdup(DEFAULT_WWW_DIR);
+
+ if (!log_file)
+ log_file = strdup(DEFAULT_LOG_FILE);
+
log_open(log_file);
psensor_init();
exit(EXIT_FAILURE);
}
- log_printf(LOG_INFO, _("Web server started on port: %d"), port);
- log_printf(LOG_INFO, _("WWW directory: %s"), server_data.www_dir);
- log_printf(LOG_INFO, _("URL: http://localhost:%d"), port);
+ log_info(_("Web server started on port: %d"), port);
+ log_info(_("WWW directory: %s"), server_data.www_dir);
+ log_info(_("URL: http://localhost:%d"), port);
+
+ if (slog_file)
+ slog_init(slog_file, server_data.sensors);
while (!server_stop_requested) {
pthread_mutex_lock(&mutex);
psensor_log_measures(server_data.sensors);
+ slog_write_sensors(server_data.sensors);
+
pthread_mutex_unlock(&mutex);
sleep(5);
}
+ slog_close();
+
MHD_stop_daemon(d);
/* sanity cleanup for valgrind */