annotate Source/Aspects/LogAttribute.cs @ 4:f757da6161a1

!bug 100 + 2h fixed gregression
author cin
date Sun, 24 Aug 2014 17:57:42 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using BLToolkit.TypeBuilder.Builders;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 namespace BLToolkit.Aspects
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 /// http://www.bltoolkit.net/Doc/Aspects/index.htm
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 [AttributeUsage(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 AttributeTargets.Class |
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 AttributeTargets.Interface |
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 AttributeTargets.Property |
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 AttributeTargets.Method,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 AllowMultiple=true)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public class LogAttribute : InterceptorAttribute
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 public LogAttribute()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 : this(typeof(LoggingAspect), null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 public LogAttribute(string parameters)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 : this(typeof(LoggingAspect), parameters)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 protected LogAttribute(Type interceptorType, string parameters)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 : base(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 interceptorType,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 InterceptType.OnCatch | InterceptType.OnFinally,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 parameters,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 TypeBuilderConsts.Priority.LoggingAspect)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 private bool _hasFileName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 private string _fileName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 public string FileName
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 get { return _fileName; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 set { _fileName = value; _hasFileName = true; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 private bool _hasMinCallTime;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 private int _minCallTime;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 public int MinCallTime
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 get { return _minCallTime; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 set { _minCallTime = value; _hasMinCallTime = true; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 private bool _hasLogExceptions;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 private bool _logExceptions;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 public bool LogExceptions
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 get { return _logExceptions; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 set { _logExceptions = value; _hasLogExceptions = true;}
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 private bool _hasLogParameters;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 private bool _logParameters;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 public bool LogParameters
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 get { return _logParameters; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 set { _logParameters = value; _hasLogParameters = true;}
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 public override string ConfigString
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 get
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 string s = base.ConfigString;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 if (_hasFileName) s += ";FileName=" + FileName;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 if (_hasMinCallTime) s += ";MinCallTime=" + MinCallTime;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 if (_hasLogExceptions) s += ";LogExceptions=" + LogExceptions;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 if (_hasLogParameters) s += ";LogParameters=" + LogParameters;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 if (!string.IsNullOrEmpty(s) && s[0] == ';')
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 s = s.Substring(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 return s;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 }