log.h File Reference

Headers for log.c. More...

#include "compat.h"
#include <syslog.h>

Go to the source code of this file.

Data Structures

struct  log_severity_list_t

Defines

#define LOG_WARN   LOG_WARNING
#define LD_GENERAL   (1u<<0)
#define LD_CRYPTO   (1u<<1)
#define LD_NET   (1u<<2)
#define LD_CONFIG   (1u<<3)
#define LD_FS   (1u<<4)
#define LD_PROTOCOL   (1u<<5)
#define LD_MM   (1u<<6)
#define LD_HTTP   (1u<<7)
#define LD_APP   (1u<<8)
#define LD_CONTROL   (1u<<9)
#define LD_CIRC   (1u<<10)
#define LD_REND   (1u<<11)
#define LD_BUG   (1u<<12)
#define LD_DIR   (1u<<13)
#define LD_DIRSERV   (1u<<14)
#define LD_OR   (1u<<15)
#define LD_EDGE   (1u<<16)
#define LD_EXIT   LD_EDGE
#define LD_ACCT   (1u<<17)
#define LD_HIST   (1u<<18)
#define LD_HANDSHAKE   (1u<<19)
#define N_LOGGING_DOMAINS   20
#define log   tor_log
#define log_fn   (_log_fn_function_name=__func__),_log_fn
#define log_debug   (_log_fn_function_name=__func__),_log_debug
#define log_info   (_log_fn_function_name=__func__),_log_info
#define log_notice   (_log_fn_function_name=__func__),_log_notice
#define log_warn   (_log_fn_function_name=__func__),_log_warn
#define log_err   (_log_fn_function_name=__func__),_log_err
#define _TOR_LOG_H

Typedefs

typedef uint32_t log_domain_mask_t
typedef void(* log_callback )(int severity, uint32_t domain, const char *msg)

Functions

void init_logging (void)
int parse_log_level (const char *level)
const char * log_level_to_string (int level)
int parse_log_severity_config (const char **cfg, log_severity_list_t *severity_out)
void set_log_severity_config (int minSeverity, int maxSeverity, log_severity_list_t *severity_out)
void add_stream_log (const log_severity_list_t *severity, const char *name, int fd)
int add_file_log (const log_severity_list_t *severity, const char *filename)
int add_syslog_log (const log_severity_list_t *severity)
int add_callback_log (const 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 (int min_severity)
void close_temp_logs (void)
void rollback_log_changes (void)
void mark_logs_temp (void)
void change_callback_log_severity (int loglevelMin, int loglevelMax, log_callback cb)
void log_set_application_name (const char *name)
void tor_log (int severity, log_domain_mask_t domain, const char *format,...) CHECK_PRINTF(3
void _log_fn (int severity, log_domain_mask_t domain, const char *format,...)
void _log_debug (log_domain_mask_t domain, const char *format,...)
void _log_info (log_domain_mask_t domain, const char *format,...)
void _log_notice (log_domain_mask_t domain, const char *format,...)
void _log_warn (log_domain_mask_t domain, const char *format,...)
void _log_err (log_domain_mask_t domain, const char *format,...)

Variables

const char * _log_fn_function_name


Detailed Description

Headers for log.c.


Define Documentation

#define LD_ACCT   (1u<<17)

#define LD_APP   (1u<<8)

#define LD_BUG   (1u<<12)

Internal errors in this Tor process.

Referenced by _circuit_mark_for_close(), _connection_free(), _connection_mark_for_close(), _connection_mark_unattached_ap(), _connection_write_to_buf_impl(), _dirreq_map_put(), _find_by_keyword(), accounting_set_wakeup_time(), add_default_trusted_dir_authorities(), addr_policy_permits_tor_addr(), addressmap_get_virtual_address(), addressmap_register_virtual_address(), append_exit_policy_string(), assert_cpath_layer_ok(), base32_decode(), buf_shrink_freelists(), check_sockaddr_family_match(), choose_good_exit_server(), circuit_detach_stream(), circuit_end_reason_to_control_string(), circuit_get_by_circid_orconn_impl(), circuit_init_cpath_crypto(), circuit_launch_by_extend_info(), circuit_package_relay_cell(), circuit_receive_relay_cell(), circuit_send_next_onion_skin(), circuit_state_to_string(), command_process_var_cell(), config_dump(), configure_nameservers(), conn_read_callback(), conn_state_to_string(), conn_type_to_string(), conn_write_callback(), connection_about_to_close_connection(), connection_ap_get_original_destination(), connection_ap_handshake_send_resolve(), connection_ap_handshake_socks_reply(), connection_buckets_decrement(), connection_close_immediate(), connection_create_listener(), connection_dir_client_reached_eof(), connection_dir_finished_flushing(), connection_dns_remove(), connection_edge_end(), connection_edge_finished_flushing(), connection_edge_package_raw_inbuf(), connection_edge_process_inbuf(), connection_edge_process_relay_cell(), connection_edge_send_command(), connection_exit_begin_conn(), connection_exit_connect(), connection_finished_connecting(), connection_finished_flushing(), connection_free(), connection_handle_write_impl(), connection_or_finished_flushing(), connection_or_flush_from_first_active_circuit(), connection_or_remove_from_identity_map(), connection_printf_to_buf(), connection_process_inbuf(), connection_proxy_connect(), connection_reached_eof(), connection_read_proxy_handshake(), connection_read_to_buf(), connection_tls_start_handshake(), connection_unregister_events(), control_event_circuit_status(), control_event_logmsg(), control_event_or_conn_status(), control_event_status(), control_event_stream_status(), control_signal_act(), cpuworker_main(), crypto_pk_public_checksig_digest(), cull_wedged_cpuworkers(), dir_conn_purpose_to_string(), dir_networkstatus_download_failed(), dir_routerdesc_download_failed(), directory_get_from_dirserver(), directory_get_from_hs_dir(), directory_send_command(), dirserv_add_own_fingerprint(), dirserv_dump_directory_to_string(), dirserv_generate_networkstatus_vote_obj(), dirserv_pick_cached_dir_obj(), dirserv_regenerate_directory(), dirserv_router_get_status(), dirvote_add_vote(), dns_cancel_pending_resolve(), dns_found_answer(), dns_launch_correctness_checks(), dns_reset(), dns_resolve_impl(), do_list_fingerprint(), do_main_loop(), entry_guards_parse_state(), evdns_callback(), extrainfo_dump_to_string(), format_msg(), format_networkstatus_vote(), generate_runningrouters(), generate_v2_networkstatus_opinion(), get_assigned_option(), get_unique_circ_id_by_conn(), getinfo_helper_events(), handle_signals(), init_keys(), launch_resolve(), networkstatus_get_detached_signatures(), networkstatus_set_current_consensus(), networkstatus_v2_parse_from_string(), networkstatus_verify_bw_weights(), new_cached_dir(), note_crypto_pk_op(), onionskin_answer(), option_reset(), options_act(), options_dup(), or_state_load(), orconn_end_reason_to_control_string(), purge_expired_resolves(), relay_crypt_one_payload(), relay_send_command_from_edge(), rend_cache_store(), rend_check_authorization(), rend_client_remove_intro_point(), rend_client_send_establish_rendezvous(), rend_config_services(), rend_encode_v2_descriptors(), rend_mid_establish_intro(), rend_service_intro_has_opened(), rend_service_introduce(), rend_service_load_keys(), rotate_onion_key(), router_append_dirobj_signature(), router_dirport_found_reachable(), router_dump_router_to_string(), router_get_hash_impl(), router_get_hashes_impl(), router_orport_found_reachable(), router_rebuild_descriptor(), router_rebuild_store(), routerlist_replace(), routerstatus_format_entry(), run_scheduled_events(), send_control_event_impl(), set_cached_dir(), set_options(), should_log_function_name(), smartlist_choose_by_bandwidth(), smartlist_choose_by_bandwidth_weights(), tor_addr_is_internal(), tor_addr_is_null(), tor_asprintf(), tor_close_socket(), tor_gzip_compress(), tor_gzip_uncompress(), tor_init(), tor_main(), tor_timegm(), tor_tls_free(), tor_tls_get_n_raw_bytes(), tor_tls_handshake(), tor_tls_server_info_callback(), tor_version_as_new_as(), tor_version_is_obsolete(), tor_zlib_new(), update_router_descriptor_cache_downloads_v2(), upload_service_descriptor(), warn_if_last_router_excluded(), write_configuration_file(), write_http_status_line(), and write_str_to_file().

#define LD_CIRC   (1u<<10)

Building, using, and managing circuits.

Referenced by add_an_entry_guard(), choose_good_exit_server_general(), choose_good_middle_server(), choose_random_entry(), circuit_build_times_add_time(), circuit_build_times_add_timeout(), circuit_build_times_add_timeout_worker(), circuit_build_times_get_initial_timeout(), circuit_build_times_network_check_changed(), circuit_build_times_network_check_live(), circuit_build_times_new_consensus_params(), circuit_build_times_parse_state(), circuit_build_times_rewind_history(), circuit_build_times_set_timeout(), circuit_build_times_shuffle_and_store_array(), circuit_build_times_update_alpha(), circuit_consider_sending_sendme(), circuit_count_pending_on_or_conn(), circuit_deliver_create_cell(), circuit_dump_details(), circuit_expire_building(), circuit_expire_old_circuits_clientside(), circuit_expire_old_circuits_serverside(), circuit_extend(), circuit_extend_to_new_exit(), circuit_find_to_cannibalize(), circuit_finish_handshake(), circuit_get_best(), circuit_get_open_circ_or_launch(), circuit_handle_first_hop(), circuit_increment_failure_count(), circuit_is_acceptable(), circuit_launch_by_extend_info(), circuit_n_conn_done(), circuit_predict_and_launch_new(), circuit_remove_handled_ports(), circuit_send_next_onion_skin(), circuit_truncated(), connection_ap_handshake_attach_circuit(), consider_testing_reachability(), entry_guard_set_status(), entry_guards_compute_status(), entry_guards_prepend_from_config(), entry_nodes_should_be_added(), get_unique_circ_id_by_conn(), link_apconn_to_circ(), log_entry_guards(), new_route_len(), onion_extend_cpath(), onion_pending_add(), onion_pick_cpath_exit(), onion_populate_cpath(), onionskin_answer(), options_act(), remove_dead_entry_guards(), remove_obsolete_entry_guards(), rend_service_intro_has_opened(), rep_hist_get_predicted_ports(), smartlist_choose_by_bandwidth(), smartlist_choose_by_bandwidth_weights(), and warn_if_last_router_excluded().

#define LD_CONFIG   (1u<<3)

Parsing and acting on our configuration.

Referenced by accounting_parse_options(), add_nickname_list_to_smartlist(), add_trusted_dir_server(), addressmap_get_virtual_address(), addressmap_register(), addressmap_rewrite(), check_descriptor_ipaddress_changed(), config_assign_line(), config_assign_value(), config_find_option(), config_get_commandlines(), config_parse_interval(), config_parse_units(), config_register_addressmaps(), configure_nameservers(), connection_connect(), create_inet_sockaddr(), dirserv_load_fingerprint_file(), dirserv_read_measured_bandwidths(), do_hup(), exit_policy_remove_redundancies(), expand_abbrev(), expand_filename(), find_torrc_filename(), get_assigned_option(), get_user_homedir(), load_torrc_from_disk(), normalize_data_directory(), options_act(), options_init_from_torrc(), options_init_logs(), options_validate(), parse_addr_policy(), parse_bridge_line(), parse_dir_server_line(), parse_log_severity_config(), parse_port_config(), parse_reachable_addresses(), rend_add_service(), rend_config_services(), rend_parse_client_keys(), rend_parse_service_authorization(), rend_service_load_keys(), resolve_my_address(), router_pick_published_address(), router_rebuild_descriptor(), routerset_parse(), routerset_refresh_countries(), run_scheduled_events(), second_elapsed_callback(), set_max_file_descriptors(), signal_callback(), switch_id(), tor_init(), tor_version_is_obsolete(), validate_data_directory(), validate_dir_authorities(), and write_configuration_file().

#define LD_CONTROL   (1u<<9)

#define LD_CRYPTO   (1u<<1)

#define LD_DIR   (1u<<13)

Learning and using information about Tor servers.

Referenced by _free_duplicate_routerstatus_entry(), any_pending_bridge_descriptor_fetches(), authority_cert_parse_from_string(), authority_certs_fetch_missing(), bridges_retry_helper(), check_signature_token(), circuit_get_open_circ_or_launch(), client_likes_consensus(), connection_dir_client_reached_eof(), connection_dir_finished_flushing(), connection_dir_request_failed(), decide_to_advertise_dirport(), dir_signing_key_is_trusted(), dir_split_resource_into_fingerprint_pairs(), dir_split_resource_into_fingerprints(), directory_get_from_dirserver(), directory_handle_command_post(), directory_info_has_arrived(), directory_initiate_command_rend(), directory_initiate_command_routerstatus_rend(), directory_post_to_dirservers(), directory_send_command(), dirserv_add_descriptor(), dirserv_add_extrainfo(), dirserv_clear_old_networkstatuses(), dirvote_act(), dirvote_add_signatures(), dirvote_add_signatures_to_pending_consensus(), dirvote_add_vote(), dirvote_compute_consensuses(), dirvote_create_microdescriptor(), dirvote_perform_vote(), dirvote_publish_consensus(), dirvote_recalculate_timing(), do_main_loop(), download_status_increment_failure(), dump_desc(), dump_routerlist_mem_usage(), extrainfo_dump_to_string(), extrainfo_parse_entry_from_string(), fetch_bridge_descriptors(), find_dir_signing_key(), http_set_address_origin(), init_keys(), launch_router_descriptor_downloads(), learned_bridge_descriptor(), load_authority_keyset(), microdesc_cache_rebuild(), microdesc_cache_reload(), microdescs_parse_from_string(), networkstatus_add_detached_signatures(), networkstatus_check_consensus_signature(), networkstatus_check_document_signature(), networkstatus_check_weights(), networkstatus_compute_consensus(), networkstatus_get_detached_signatures(), networkstatus_getinfo_by_purpose(), networkstatus_parse_detached_signatures(), networkstatus_parse_vote_from_string(), networkstatus_set_current_consensus(), networkstatus_v2_list_clean(), networkstatus_v2_parse_from_string(), networkstatus_verify_bw_weights(), parse_bridge_line(), parse_dir_server_line(), parse_http_url(), rend_parse_v2_service_descriptor(), router_add_exit_policy(), router_add_to_routerlist(), router_load_extrainfo_from_string(), router_load_routers_from_string(), router_load_single_router(), router_new_address_suggestion(), router_parse_addr_policy(), router_parse_addr_policy_item_from_string(), router_parse_directory(), router_parse_entry_from_string(), router_parse_list_from_string(), router_parse_runningrouters(), router_pick_directory_server(), router_pick_trusteddirserver(), router_rebuild_store(), router_reload_router_list_impl(), router_reload_v2_networkstatus(), router_set_networkstatus_v2(), router_set_status(), routerlist_remove_old_routers(), routerstatus_parse_entry_from_string(), run_connection_housekeeping(), should_delay_dir_fetches(), signed_descriptor_get_body_impl(), tokenize_string(), tor_version_as_new_as(), trusted_dirs_load_certs_from_string(), update_consensus_networkstatus_downloads(), update_consensus_networkstatus_fetch_time(), update_consensus_router_descriptor_downloads(), update_extrainfo_downloads(), update_router_have_minimum_dir_info(), and v3_authority_check_key_expiry().

#define LD_DIRSERV   (1u<<14)

#define LD_EDGE   (1u<<16)

#define LD_FS   (1u<<4)

#define LD_GENERAL   (1u<<0)

Catch-all for miscellaneous events and fatal errors.

Referenced by _connection_free(), append_cell_to_circuit_queue(), check_descriptor_bandwidth_changed(), check_private_dir(), circuit_note_clock_jumped(), circuit_send_next_onion_skin(), circuit_testing_failed(), command_process_create_cell(), command_process_netinfo_cell(), conn_close_if_marked(), connection_cpu_reached_eof(), connection_dir_client_reached_eof(), connection_handle_write_impl(), connection_or_flush_from_first_active_circuit(), connection_read_to_buf(), consider_hibernation(), dirserv_load_fingerprint_file(), do_hup(), do_list_fingerprint(), do_main_loop(), dump_distinct_digest_count(), dumpmemusage(), dumpstats(), extrainfo_dump_to_string(), finish_daemon(), geoip_load_file(), geoip_parse_entry(), getinfo_helper_events(), hibernate_begin(), init_key_from_file(), init_keys(), libevent_logging_callback(), log_addr_has_changed(), log_cert_lifetime(), log_credential_status(), networkstatus_set_current_consensus(), onion_pending_add(), onion_pending_remove(), onion_skin_server_handshake(), options_act(), or_state_load(), or_state_save(), or_state_set(), parse_addr_and_port_range(), parse_addr_port(), parse_iso_time(), parse_port_range(), parse_rfc1123_time(), remove_file_if_very_old(), rend_client_receive_rendezvous(), rend_client_send_establish_rendezvous(), rend_mid_establish_intro(), rend_mid_introduce(), rend_mid_rendezvous(), rend_service_dump_stats(), rend_service_intro_has_opened(), rend_service_rendezvous_has_opened(), rotate_onion_key(), router_get_consensus_status_by_nickname(), router_get_my_descriptor(), router_load_routers_from_string(), router_set_networkstatus_v2(), router_upload_dir_desc_to_dirservers(), routers_update_all_from_networkstatus(), run_scheduled_events(), signal_callback(), spawn_enough_cpuworkers(), start_daemon(), start_writing_to_file(), switch_id(), tor_addr_parse_mask_ports(), tor_check_libevent_header_compatibility(), tor_check_libevent_version(), tor_gettimeofday(), tor_gzip_compress(), tor_gzip_uncompress(), tor_init(), tor_libevent_initialize(), tor_mlockall(), tor_mutex_acquire(), tor_mutex_init(), tor_mutex_release(), tor_mutex_uninit(), tor_tls_init(), tor_zlib_process(), try_locking(), tv_mdiff(), and tv_udiff().

#define LD_HANDSHAKE   (1u<<19)

#define LD_HIST   (1u<<18)

#define LD_HTTP   (1u<<7)

#define LD_MM   (1u<<6)

#define LD_NET   (1u<<2)

Networking.

Referenced by _check_no_tls_errors(), _connection_free(), _connection_write_to_buf_impl(), check_sockaddr(), client_check_address_changed(), conn_close_if_marked(), conn_read_callback(), conn_write_callback(), connection_add(), connection_ap_get_original_destination(), connection_bucket_refill(), connection_bucket_refill_helper(), connection_close_immediate(), connection_connect(), connection_consider_empty_read_buckets(), connection_consider_empty_write_buckets(), connection_create_listener(), connection_expire_held_open(), connection_handle_listener_read(), connection_handle_write_impl(), connection_proxy_connect(), connection_read_https_proxy_response(), connection_read_proxy_handshake(), connection_read_to_buf(), connection_remove(), connection_start_reading(), connection_start_writing(), connection_stop_reading(), connection_stop_writing(), directory_all_unreachable(), directory_initiate_command_rend(), dirserv_generate_networkstatus_vote_obj(), dirvote_perform_vote(), do_main_loop(), dumpstats(), fetch_from_buf_socks_client(), flush_chunk(), flush_chunk_tls(), generate_v2_networkstatus_opinion(), get_interface_address6(), got_libevent_error(), hibernate_begin(), hibernate_go_dormant(), libevent_logging_callback(), log_cert_lifetime(), network_init(), options_act_reversible(), parse_addr_port(), read_to_chunk(), rectify_client_ciphers(), resolve_my_address(), router_set_status(), second_elapsed_callback(), set_constrained_socket_buffers(), set_max_file_descriptors(), spawn_cpuworker(), tor_close_socket(), tor_tls_check_lifetime(), tor_tls_client_is_using_v2_ciphers(), tor_tls_context_new(), tor_tls_create_certificate(), tor_tls_get_error(), tor_tls_new(), tor_tls_read(), tor_tls_shutdown(), tor_tls_write(), and warn_too_many_conns().

#define LD_OR   (1u<<15)

#define LD_PROTOCOL   (1u<<5)

#define LD_REND   (1u<<11)

Hidden services.

Referenced by _circuit_mark_for_close(), circuit_build_failed(), circuit_expire_building(), circuit_get_best(), circuit_get_open_circ_or_launch(), circuit_receive_relay_cell(), connection_ap_expire_beginning(), connection_ap_handshake_attach_circuit(), connection_dir_client_reached_eof(), connection_exit_begin_conn(), directory_get_from_hs_dir(), directory_handle_command_get(), directory_handle_command_post(), directory_post_to_hs_dir(), hid_serv_acting_as_directory(), hid_serv_get_responsible_directories(), rend_add_service(), rend_cache_clean_v2_descs_as_dir(), rend_cache_lookup_v2_desc_as_dir(), rend_cache_store(), rend_cache_store_v2_desc_as_client(), rend_cache_store_v2_desc_as_dir(), rend_client_desc_trynow(), rend_client_get_random_intro(), rend_client_introcirc_has_opened(), rend_client_introduction_acked(), rend_client_receive_rendezvous(), rend_client_refetch_v2_renddesc(), rend_client_remove_intro_point(), rend_client_rendcirc_has_opened(), rend_client_rendezvous_acked(), rend_client_send_establish_rendezvous(), rend_client_send_introduction(), rend_compute_v2_desc_id(), rend_config_services(), rend_decrypt_introduction_points(), rend_encode_v2_descriptors(), rend_encode_v2_intro_points(), rend_encrypt_v2_intro_points_basic(), rend_encrypt_v2_intro_points_stealth(), rend_mid_establish_intro(), rend_mid_establish_rendezvous(), rend_mid_introduce(), rend_mid_rendezvous(), rend_parse_client_keys(), rend_parse_introduction_points(), rend_parse_v2_service_descriptor(), rend_service_intro_established(), rend_service_intro_has_opened(), rend_service_introduce(), rend_service_launch_establish_intro(), rend_service_load_keys(), rend_service_relaunch_rendezvous(), rend_service_rendezvous_has_opened(), rend_service_set_connection_addr_port(), rend_services_introduce(), and upload_service_descriptor().

#define N_LOGGING_DOMAINS   20

Number of logging domains in the code.


Typedef Documentation

typedef void(* log_callback)(int severity, uint32_t domain, const char *msg)

Callback type used for add_callback_log.


Function Documentation

int add_callback_log ( const log_severity_list_t severity,
log_callback  cb 
)

Add a log handler to send messages in severity to the function cb.

References _log_global_min_severity, logfile_t::callback, logfile_t::fd, logfile_t::filename, get_min_log_level(), logfile_t::next, and logfile_t::severities.

Referenced by options_act_reversible().

int add_file_log ( const log_severity_list_t severity,
const char *  filename 
)

Add a log handler to send messages to filename. If opening the logfile fails, -1 is returned and errno is set appropriately (by open(2)).

References _log_global_min_severity, add_stream_log_impl(), delete_log(), get_min_log_level(), log_tor_version(), logfile_t::needs_close, and tor_fd_seekend().

Referenced by options_init_logs().

void add_stream_log ( const log_severity_list_t severity,
const char *  name,
int  fd 
)

Add a log handler named name to send all messages in severity to fd. Steals a reference to severity; the caller must not use it after calling this function.

References add_stream_log_impl().

Referenced by options_init_logs().

int add_syslog_log ( const log_severity_list_t severity  ) 

Add a log handler to send messages to they system log facility.

References _log_global_min_severity, logfile_t::fd, logfile_t::filename, get_min_log_level(), logfile_t::is_syslog, logfile_t::next, logfile_t::severities, and syslog_count.

Referenced by options_init_logs().

void add_temp_log ( int  min_severity  ) 

Add a log handler to receive messages during startup (before the real logs are initialized).

References add_stream_log_impl(), logfile_t::is_temporary, set_log_severity_config(), and tor_free.

Referenced by tor_init().

void change_callback_log_severity ( int  loglevelMin,
int  loglevelMax,
log_callback  cb 
)

Adjust the configured severity of any logs whose callback function is cb.

References _log_global_min_severity, logfile_t::callback, get_min_log_level(), logfile_t::next, set_log_severity_config(), and logfile_t::severities.

Referenced by control_adjust_event_log_severity().

void close_temp_logs ( void   ) 

int get_min_log_level ( void   ) 

void init_logging ( void   ) 

Initialize the global logging facility

References tor_mutex_init().

Referenced by tor_main().

const char* log_level_to_string ( int  level  ) 

Return the string equivalent of a given log level.

References sev_to_string().

void log_set_application_name ( const char *  name  ) 

Set the "application name" for the logs to name: we'll use this name in the message we write when starting up, and at the start of each new log.

Tor uses this string to write the version number to the log file.

References appname, and tor_free.

Referenced by tor_init().

void logs_free_all ( void   ) 

Close all open log files, and free other static memory.

References appname, close_log(), log_free(), logfile_t::next, and tor_free.

Referenced by tor_free_all().

void mark_logs_temp ( void   ) 

Configure all log handles to be closed by close_temp_logs().

References logfile_t::is_temporary, and logfile_t::next.

Referenced by options_act_reversible().

int parse_log_level ( const char *  level  ) 

If level is a valid log severity, return the corresponding numeric value. Otherwise, return -1.

Referenced by parse_log_severity_config().

int parse_log_severity_config ( const char **  cfg_ptr,
log_severity_list_t severity_out 
)

Parse a log severity pattern in *cfg_ptr. Advance cfg_ptr after the end of the severityPattern. Set the value of severity_out to the parsed pattern. Return 0 on success, -1 on failure.

The syntax for a SeverityPattern is:

   SeverityPattern = *(DomainSeverity SP)* DomainSeverity
   DomainSeverity = (DomainList SP)? SeverityRange
   SeverityRange = MinSeverity ("-" MaxSeverity )?
   DomainList = "[" (SP? DomainSpec SP? ",") SP? DomainSpec "]"
   DomainSpec = "*" | Domain | "~" Domain
 
A missing MaxSeverity defaults to ERR. Severities and domains are case-insensitive. "~" indicates negation for a domain; negation happens last inside a DomainList. Only one SeverityRange without a DomainList is allowed per line.

References eat_whitespace(), LD_CONFIG, log_severity_list_t::masks, parse_log_domain(), parse_log_level(), smartlist_create(), smartlist_free(), smartlist_split_string(), strcasecmpstart(), and tor_free.

Referenced by options_init_logs().

void rollback_log_changes ( void   ) 

Make all currently temporary logs (set to be closed by close_temp_logs) live again, and close all non-temporary logs.

References close_temp_logs(), logfile_t::is_temporary, and logfile_t::next.

Referenced by options_act_reversible().

void set_log_severity_config ( int  loglevelMin,
int  loglevelMax,
log_severity_list_t severity_out 
)

Adjust a log severity configuration in severity_out to contain every domain between loglevelMin and loglevelMax, inclusive.

References log_severity_list_t::masks, and tor_assert.

Referenced by add_temp_log(), and change_callback_log_severity().

void switch_logs_debug ( void   ) 

Switch all logs to output at most verbose level.

References _log_global_min_severity, get_min_log_level(), log_severity_list_t::masks, logfile_t::next, and logfile_t::severities.

Referenced by signal_callback().


Variable Documentation

const char* _log_fn_function_name

Output a message to the log, prefixed with a function name fn.


Generated on Tue May 25 00:30:44 2010 for tor by  doxygen 1.5.6