# Debugging options for the org.eclipse.ecf.filetransfer plug-in

# Turn on general debugging for the org.eclipse.ecf.filetransfer plug-in
org.eclipse.ecf.filetransfer/debug=true
org.eclipse.ecf.filetransfer/debug/filter = *
org.eclipse.ecf.filetransfer/debug/flag = true

# Trace when exceptions are caught
org.eclipse.ecf.filetransfer/debug/exceptions/catching=false
# Trace when exceptions are thrown
org.eclipse.ecf.filetransfer/debug/exceptions/throwing=false

# Trace when methods are entered
org.eclipse.ecf.filetransfer/debug/methods/entering=false
# Trace when methods are exited
org.eclipse.ecf.filetransfer/debug/methods/exiting=false
