12
12
* express or implied. See the License for the specific
13
13
* language governing rights and limitations under the License.
14
14
*
15
- * Copyright (c) 2010-2012 Jiri Cincura ([email protected] )
15
+ * Copyright (c) 2010-2017 Jiri Cincura ([email protected] )
16
16
* All Rights Reserved.
17
17
*/
18
18
19
19
using System ;
20
20
using System . Text ;
21
21
22
- using FirebirdSql . Data . Common ;
23
-
24
22
namespace FirebirdSql . Data . Services
25
23
{
26
24
public class FbDatabaseTraceConfiguration : FbTraceConfiguration
@@ -55,11 +53,26 @@ public FbDatabaseTraceConfiguration()
55
53
public string IncludeFilter { get ; set ; }
56
54
public string ExcludeFilter { get ; set ; }
57
55
58
- public override string ToString ( )
56
+ public string IncludeGdsCodes { get ; set ; }
57
+ public string ExcludeGdsCodes { get ; set ; }
58
+
59
+ public string BuildConfiguration ( FbTraceVersion version )
59
60
{
60
- StringBuilder sb = new StringBuilder ( ) ;
61
+ switch ( version )
62
+ {
63
+ case FbTraceVersion . Version1 :
64
+ return BuildConfiguration1 ( ) ;
65
+ case FbTraceVersion . Version2 :
66
+ return BuildConfiguration2 ( ) ;
67
+ default :
68
+ throw new ArgumentOutOfRangeException ( nameof ( version ) ) ;
69
+ }
70
+ }
71
+ string BuildConfiguration1 ( )
72
+ {
73
+ var sb = new StringBuilder ( ) ;
61
74
sb . Append ( "<database" ) ;
62
- sb . Append ( ( ! string . IsNullOrEmpty ( DatabaseName ) ? " " + WriteString ( DatabaseName ) : string . Empty ) ) ;
75
+ sb . Append ( ( ! string . IsNullOrEmpty ( DatabaseName ) ? $ " { WriteRegEx ( DatabaseName ) } " : string . Empty ) ) ;
63
76
sb . AppendLine ( ">" ) ;
64
77
sb . AppendFormat ( "enabled {0}" , WriteBoolValue ( Enabled ) ) ;
65
78
sb . AppendLine ( ) ;
@@ -73,6 +86,16 @@ public override string ToString()
73
86
sb . AppendFormat ( "exclude_filter {0}" , WriteRegEx ( ExcludeFilter ) ) ;
74
87
sb . AppendLine ( ) ;
75
88
}
89
+ if ( ! string . IsNullOrEmpty ( IncludeGdsCodes ) )
90
+ {
91
+ sb . AppendFormat ( "include_gds_codes {0}" , WriteString ( IncludeGdsCodes ) ) ;
92
+ sb . AppendLine ( ) ;
93
+ }
94
+ if ( ! string . IsNullOrEmpty ( ExcludeGdsCodes ) )
95
+ {
96
+ sb . AppendFormat ( "exclude_gds_codes {0}" , WriteString ( ExcludeGdsCodes ) ) ;
97
+ sb . AppendLine ( ) ;
98
+ }
76
99
sb . AppendFormat ( "log_connections {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Connections ) ) ) ;
77
100
sb . AppendLine ( ) ;
78
101
sb . AppendFormat ( "connection_id {0}" , WriteNumber ( ConnectionID ) ) ;
@@ -91,6 +114,10 @@ public override string ToString()
91
114
sb . AppendLine ( ) ;
92
115
sb . AppendFormat ( "log_procedure_finish {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . ProcedureFinish ) ) ) ;
93
116
sb . AppendLine ( ) ;
117
+ sb . AppendFormat ( "log_function_start {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . FunctionStart ) ) ) ;
118
+ sb . AppendLine ( ) ;
119
+ sb . AppendFormat ( "log_function_finish {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . FunctionFinish ) ) ) ;
120
+ sb . AppendLine ( ) ;
94
121
sb . AppendFormat ( "log_trigger_start {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . TriggerStart ) ) ) ;
95
122
sb . AppendLine ( ) ;
96
123
sb . AppendFormat ( "log_trigger_finish {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . TriggerFinish ) ) ) ;
@@ -99,10 +126,16 @@ public override string ToString()
99
126
sb . AppendLine ( ) ;
100
127
sb . AppendFormat ( "log_errors {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Errors ) ) ) ;
101
128
sb . AppendLine ( ) ;
129
+ sb . AppendFormat ( "log_warnings {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Warnings ) ) ) ;
130
+ sb . AppendLine ( ) ;
131
+ sb . AppendFormat ( "log_initfini {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . InitFini ) ) ) ;
132
+ sb . AppendLine ( ) ;
102
133
sb . AppendFormat ( "log_sweep {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Sweep ) ) ) ;
103
134
sb . AppendLine ( ) ;
104
135
sb . AppendFormat ( "print_plan {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . PrintPlan ) ) ) ;
105
136
sb . AppendLine ( ) ;
137
+ sb . AppendFormat ( "explain_plan {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . ExplainPlan ) ) ) ;
138
+ sb . AppendLine ( ) ;
106
139
sb . AppendFormat ( "print_perf {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . PrintPerf ) ) ) ;
107
140
sb . AppendLine ( ) ;
108
141
sb . AppendFormat ( "log_blr_requests {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . BLRRequests ) ) ) ;
@@ -128,5 +161,98 @@ public override string ToString()
128
161
sb . AppendLine ( "</database>" ) ;
129
162
return sb . ToString ( ) ;
130
163
}
164
+ string BuildConfiguration2 ( )
165
+ {
166
+ var sb = new StringBuilder ( ) ;
167
+ sb . Append ( "database" ) ;
168
+ sb . Append ( ( ! string . IsNullOrEmpty ( DatabaseName ) ? $ " = { WriteRegEx ( DatabaseName ) } " : string . Empty ) ) ;
169
+ sb . AppendLine ( "{" ) ;
170
+ sb . AppendFormat ( "enabled = {0}" , WriteBoolValue ( Enabled ) ) ;
171
+ sb . AppendLine ( ) ;
172
+ if ( ! string . IsNullOrEmpty ( IncludeFilter ) )
173
+ {
174
+ sb . AppendFormat ( "include_filter = {0}" , WriteRegEx ( IncludeFilter ) ) ;
175
+ sb . AppendLine ( ) ;
176
+ }
177
+ if ( ! string . IsNullOrEmpty ( ExcludeFilter ) )
178
+ {
179
+ sb . AppendFormat ( "exclude_filter = {0}" , WriteRegEx ( ExcludeFilter ) ) ;
180
+ sb . AppendLine ( ) ;
181
+ }
182
+ if ( ! string . IsNullOrEmpty ( IncludeGdsCodes ) )
183
+ {
184
+ sb . AppendFormat ( "include_gds_codes = {0}" , WriteString ( IncludeGdsCodes ) ) ;
185
+ sb . AppendLine ( ) ;
186
+ }
187
+ if ( ! string . IsNullOrEmpty ( ExcludeGdsCodes ) )
188
+ {
189
+ sb . AppendFormat ( "exclude_gds_codes = {0}" , WriteString ( ExcludeGdsCodes ) ) ;
190
+ sb . AppendLine ( ) ;
191
+ }
192
+ sb . AppendFormat ( "log_connections = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Connections ) ) ) ;
193
+ sb . AppendLine ( ) ;
194
+ sb . AppendFormat ( "connection_id = {0}" , WriteNumber ( ConnectionID ) ) ;
195
+ sb . AppendLine ( ) ;
196
+ sb . AppendFormat ( "log_transactions = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Transactions ) ) ) ;
197
+ sb . AppendLine ( ) ;
198
+ sb . AppendFormat ( "log_statement_prepare = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . StatementPrepare ) ) ) ;
199
+ sb . AppendLine ( ) ;
200
+ sb . AppendFormat ( "log_statement_free = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . StatementFree ) ) ) ;
201
+ sb . AppendLine ( ) ;
202
+ sb . AppendFormat ( "log_statement_start = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . StatementStart ) ) ) ;
203
+ sb . AppendLine ( ) ;
204
+ sb . AppendFormat ( "log_statement_finish = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . StatementFinish ) ) ) ;
205
+ sb . AppendLine ( ) ;
206
+ sb . AppendFormat ( "log_procedure_start = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . ProcedureStart ) ) ) ;
207
+ sb . AppendLine ( ) ;
208
+ sb . AppendFormat ( "log_procedure_finish = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . ProcedureFinish ) ) ) ;
209
+ sb . AppendLine ( ) ;
210
+ sb . AppendFormat ( "log_function_start = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . FunctionStart ) ) ) ;
211
+ sb . AppendLine ( ) ;
212
+ sb . AppendFormat ( "log_function_finish = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . FunctionFinish ) ) ) ;
213
+ sb . AppendLine ( ) ;
214
+ sb . AppendFormat ( "log_trigger_start = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . TriggerStart ) ) ) ;
215
+ sb . AppendLine ( ) ;
216
+ sb . AppendFormat ( "log_trigger_finish = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . TriggerFinish ) ) ) ;
217
+ sb . AppendLine ( ) ;
218
+ sb . AppendFormat ( "log_context = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Context ) ) ) ;
219
+ sb . AppendLine ( ) ;
220
+ sb . AppendFormat ( "log_errors = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Errors ) ) ) ;
221
+ sb . AppendLine ( ) ;
222
+ sb . AppendFormat ( "log_warnings = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Warnings ) ) ) ;
223
+ sb . AppendLine ( ) ;
224
+ sb . AppendFormat ( "log_initfini = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . InitFini ) ) ) ;
225
+ sb . AppendLine ( ) ;
226
+ sb . AppendFormat ( "log_sweep = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . Sweep ) ) ) ;
227
+ sb . AppendLine ( ) ;
228
+ sb . AppendFormat ( "print_plan = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . PrintPlan ) ) ) ;
229
+ sb . AppendLine ( ) ;
230
+ sb . AppendFormat ( "explain_plan = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . ExplainPlan ) ) ) ;
231
+ sb . AppendLine ( ) ;
232
+ sb . AppendFormat ( "print_perf = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . PrintPerf ) ) ) ;
233
+ sb . AppendLine ( ) ;
234
+ sb . AppendFormat ( "log_blr_requests = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . BLRRequests ) ) ) ;
235
+ sb . AppendLine ( ) ;
236
+ sb . AppendFormat ( "print_blr = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . PrintBLR ) ) ) ;
237
+ sb . AppendLine ( ) ;
238
+ sb . AppendFormat ( "log_dyn_requests = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . DYNRequests ) ) ) ;
239
+ sb . AppendLine ( ) ;
240
+ sb . AppendFormat ( "print_dyn = {0}" , WriteBoolValue ( Events . HasFlag ( FbDatabaseTraceEvents . PrintDYN ) ) ) ;
241
+ sb . AppendLine ( ) ;
242
+ sb . AppendFormat ( "time_threshold = {0}" , WriteNumber ( ( int ) TimeThreshold . TotalMilliseconds ) ) ;
243
+ sb . AppendLine ( ) ;
244
+ sb . AppendFormat ( "max_sql_length = {0}" , WriteNumber ( MaxSQLLength ) ) ;
245
+ sb . AppendLine ( ) ;
246
+ sb . AppendFormat ( "max_blr_length = {0}" , WriteNumber ( MaxBLRLength ) ) ;
247
+ sb . AppendLine ( ) ;
248
+ sb . AppendFormat ( "max_dyn_length = {0}" , WriteNumber ( MaxDYNLength ) ) ;
249
+ sb . AppendLine ( ) ;
250
+ sb . AppendFormat ( "max_arg_length = {0}" , WriteNumber ( MaxArgumentLength ) ) ;
251
+ sb . AppendLine ( ) ;
252
+ sb . AppendFormat ( "max_arg_count = {0}" , WriteNumber ( MaxArgumentsCount ) ) ;
253
+ sb . AppendLine ( ) ;
254
+ sb . AppendLine ( "}" ) ;
255
+ return sb . ToString ( ) ;
256
+ }
131
257
}
132
258
}
0 commit comments