# Trace configuration. Following rules are used :
# - configuration is processed from top to bottom
# - there is two kind of sections allowed : "database" and "services"
# - parameters at default section are used for all databases or services
# - only one default section for each kind is allowed
# - after processing of default database section, search is continued
# - if database name matches pattern, options are immediately applied and
#   search does not continue
#
# Pattern is either database name without path or "SIMILAR TO"-based regular
# expression which is matched against fully qualified database path name.
#
# For log file name Sed syntax for substitutions is supported.
# I.e. \0 - whole matched string, \1 ... \9 - parenthesis subexpressions. 
# \\ is backslash.
#
# String values should be enclosed into (any kind of) quotes if contains 
# spaces embedded, for example:
# log_filename 'C:\Documents and Settings\Firebird\My Documents\trace.log'
# include_filter "Database Stats"


# default database section 
#
<database>
	# Do we trace database events or not
	enabled false

	# Operations log file name. For use by system audit trace only
	#log_filename 

	# Maximum size of log file (megabytes). Used by system audit trace for 
	# log's rotation : when current log file reached this limit it is renamed
	# using current date and time and new log file is created. Value of zero 
	# means that the log file size is unlimited and rotation will never happen.
	max_log_size 0


	# SQL query filters. 
	#
	# Only SQL statements falling under given regular expression are reported 
	# in the log.
	#include_filter 

	# SQL statements falling under given regular expression are NOT reported 
	# in the log.
	#exclude_filter 


	# Put attach/detach log records 
	log_connections false

	# Trace only given connection id. If zero - trace all connections 
	#connection_id 0

	# Put transaction start/end records 
	log_transactions false


	# Put sql statement prepare records 
	log_statement_prepare false

	# Put sql statement free records 
	log_statement_free false

	# Put sql statement execution start records 
	log_statement_start false
	
	# Put sql statement execution finish\fetch to eof records 
	log_statement_finish false

	# Put record when stored procedure is start execution 
	log_procedure_start false

	# Put record when stored procedure is finish execution 
	log_procedure_finish false

	# Put trigger execute records 
	log_trigger_start false

	# Put trigger execute records 
	log_trigger_finish false

	# Put context variable change records (RDB$SET_CONTEXT)
	#log_context false

	# Put errors happened
	#log_errors false

	# Put warnings
	#log_warnings false

	# Put trace session init and finish messages
	#log_initfini true

	# Sweep activity
	#log_sweep false


	# Print access path (plan) with sql statement
	print_plan false

	# Print detailed performance info when applicable
	print_perf false


	# Put blr requests compile/execute records 
	log_blr_requests false

	# Print blr requests or not
	print_blr false

	# Put dyn requests execute records 
	log_dyn_requests false

	# Print dyn requests or not
	print_dyn false


	# Put xxx_finish record only if its timing exceeds this number of milliseconds
	time_threshold 100

	# Maximum length of SQL string logged 
	# Beware when adjusting max_xxx parameters! Maximum length of log record
	# for one event should never exceed 64K.
	max_sql_length 300

	# Maximum length of blr request logged 
	max_blr_length 500

	# Maximum length of dyn request logged 
	max_dyn_length 500

	# Maximum length of individual string argument we log 
	max_arg_length 80

	# Maximum number of query arguments to put in log 
	max_arg_count 30
</database>



# default services section
#
# List of names of currently existing Firebirds services (to use with service 
# filters below) :
#	Backup Database
#	Restore Database
#	Repair Database
#	Add User
#	Delete User
#	Modify User
#	Display User
#	Database Properties
#	Database Stats
#	Get Log File
#	Incremental Backup Database
#	Incremental Restore Database
#	Start Trace Session
#	Stop Trace Session
#	Suspend Trace Session
#	Resume Trace Session
#	List Trace Sessions
#	Set Domain Admins Mapping to RDB$ADMIN
#	Drop Domain Admins Mapping to RDB$ADMIN
#
<services>
	# Do we trace services events or not
	enabled false

	# Operations log file name. For use by system audit trace only
	#log_filename 

	# Maximum size of log file (megabytes). Used by system audit trace for 
	# log's rotation 
	max_log_size 0

	# Services filters.
	#
	# Only services whose names fall under given regular expression are 
	# reported in the log.
	#include_filter 

	# Services whose names fall under given regular expression are NOT 
	# reported in the log.
	#exclude_filter 

	# Put service attach, detach and start records
	log_services false

	# Put service query records
	log_service_query false

	# Put errors happened
	#log_errors false

	# Put warnings
	#log_warnings false

	# Put trace session init and finish messages
	#log_initfini true
</services>


# Example of trace customization:
#
# Enable logging for my_database.fdb in any folder
#
<database %[\\/]my_database.fdb>
	enabled true
</database>


# Enable logging for test.fdb, azk2.fdb and rulez.fdb in any directory
# into log file name matching database name - test.log, azk2.log and 
# rulez.log appropriately
#
<database %[\\/](test|azk2|rulez).fdb>
	enabled true
	log_filename \1.log
</database>
