aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--src/common/log.c4
-rw-r--r--src/common/log.h2
-rw-r--r--src/or/config.c3
-rw-r--r--src/or/main.c17
5 files changed, 21 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index e663d0ff4..0cfa8edd3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -47,6 +47,9 @@ Changes in version 0.2.1.1-alpha - 2008-??-??
this accounted for over 40% of allocations from within Tor's code
on a typical directory cache.
- Lots of new unit tests.
+ - New --hush command-line option similar to --quiet. While --quiet
+ disables all logging to the console on startup, --hush limits the
+ output to messages of warning and error severity.
o Code simplifications and refactoring:
- Refactor code using connection_ap_handshake_attach_circuit() to
diff --git a/src/common/log.c b/src/common/log.c
index 0f59a93ac..e49cc8411 100644
--- a/src/common/log.c
+++ b/src/common/log.c
@@ -535,10 +535,10 @@ init_logging(void)
* logs are initialized).
*/
void
-add_temp_log(void)
+add_temp_log(int min_severity)
{
log_severity_list_t *s = tor_malloc_zero(sizeof(log_severity_list_t));
- set_log_severity_config(LOG_NOTICE, LOG_ERR, s);
+ set_log_severity_config(min_severity, LOG_ERR, s);
LOCK_LOGS();
add_stream_log_impl(s, "<temp>", stdout);
tor_free(s);
diff --git a/src/common/log.h b/src/common/log.h
index c752d40b8..2204ad1c7 100644
--- a/src/common/log.h
+++ b/src/common/log.h
@@ -130,7 +130,7 @@ int add_callback_log(log_severity_list_t *severity, log_callback cb);
int get_min_log_level(void);
void switch_logs_debug(void);
void logs_free_all(void);
-void add_temp_log(void);
+void add_temp_log(int min_severity);
void close_temp_logs(void);
void rollback_log_changes(void);
void mark_logs_temp(void);
diff --git a/src/or/config.c b/src/or/config.c
index 10ddf590c..0672342c2 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -1343,7 +1343,8 @@ config_get_commandlines(int argc, char **argv, config_line_t **result)
} else if (!strcmp(argv[i],"--list-fingerprint") ||
!strcmp(argv[i],"--verify-config") ||
!strcmp(argv[i],"--ignore-missing-torrc") ||
- !strcmp(argv[i],"--quiet")) {
+ !strcmp(argv[i],"--quiet") ||
+ !strcmp(argv[i],"--hush")) {
i += 1; /* command-line option. ignore it. */
continue;
} else if (!strcmp(argv[i],"--nt-service") ||
diff --git a/src/or/main.c b/src/or/main.c
index 9f6bff67f..4ff46461f 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -1780,12 +1780,21 @@ tor_init(int argc, char *argv[])
/* We search for the "quiet" option first, since it decides whether we
* will log anything at all to the command line. */
for (i=1;i<argc;++i) {
- if (!strcmp(argv[i], "--quiet"))
+ if (!strcmp(argv[i], "--hush"))
quiet = 1;
+ if (!strcmp(argv[i], "--quiet"))
+ quiet = 2;
}
- if (!quiet) {
- /* give it somewhere to log to initially */
- add_temp_log();
+ /* give it somewhere to log to initially */
+ switch (quiet) {
+ case 2:
+ /* no initial logging */
+ break;
+ case 1:
+ add_temp_log(LOG_WARN);
+ break;
+ default:
+ add_temp_log(LOG_NOTICE);
}
log(LOG_NOTICE, LD_GENERAL, "Tor v%s. This is experimental software. "