2009-06-12 Bill Holmes <billholmes54@gmail.com>
[mono.git] / mcs / class / System.Data.Linq / src / DbLinq / Logging / Implementation / ConsoleDebugLogger.cs
1 #region MIT license\r
2 // \r
3 // MIT license\r
4 //\r
5 // Copyright (c) 2007-2008 Jiri Moudry, Pascal Craponne\r
6 // \r
7 // Permission is hereby granted, free of charge, to any person obtaining a copy\r
8 // of this software and associated documentation files (the "Software"), to deal\r
9 // in the Software without restriction, including without limitation the rights\r
10 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
11 // copies of the Software, and to permit persons to whom the Software is\r
12 // furnished to do so, subject to the following conditions:\r
13 // \r
14 // The above copyright notice and this permission notice shall be included in\r
15 // all copies or substantial portions of the Software.\r
16 // \r
17 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
18 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
20 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
22 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
23 // THE SOFTWARE.\r
24 // \r
25 #endregion\r
26 using System;\r
27 using System.Diagnostics;\r
28 \r
29 namespace DbLinq.Logging.Implementation\r
30 {\r
31 #if MONO_STRICT\r
32     internal\r
33 #else\r
34     public\r
35 #endif\r
36     class ConsoleLogger : Logger\r
37     {\r
38         public override void Write(Level level, string text)\r
39         {\r
40             ConsoleColor prevColor = Console.ForegroundColor;\r
41             switch (level)\r
42             {\r
43                 case Level.Debug:\r
44                     Console.ForegroundColor = ConsoleColor.Blue;\r
45                     break;\r
46                 case Level.Information:\r
47                     Console.ResetColor();\r
48                     break;\r
49                 case Level.Warning:\r
50                     Console.ForegroundColor = ConsoleColor.Yellow;\r
51                     break;\r
52                 case Level.Error:\r
53                     Console.ForegroundColor = ConsoleColor.Red;\r
54                     break;\r
55                 default:\r
56                     throw new ArgumentOutOfRangeException("level");\r
57             }\r
58             Console.WriteLine(text);\r
59             Console.ForegroundColor = prevColor;\r
60             // picrap --> jiri: this is probably not the right place, maybe shall we find something else?\r
61             text = text.Replace("System.String", "string");\r
62             text = text.Replace("System.Int32", "int");\r
63             text = text.Replace("DbLinq.Linq.", "");\r
64             text = text.Replace("System.Linq.", "");\r
65             text = text.Replace("nwind.", "");\r
66             Debug.WriteLine(string.Format("{0:u} {1}", DateTime.Now, text));\r
67             //Debug.WriteLine(text);\r
68         }\r
69     }\r
70     //class DebugLogger : Logger\r
71     //{\r
72     //    public override void Write(Level level, string text)\r
73     //    {\r
74     //        //Console.WriteLine(text);\r
75     //        // picrap --> jiri: this is probably not the right place, maybe shall we find something else?\r
76     //        text = text.Replace("System.String", "string");\r
77     //        text = text.Replace("System.Int32", "int");\r
78     //        text = text.Replace("DbLinq.Linq.", "");\r
79     //        text = text.Replace("System.Linq.", "");\r
80     //        text = text.Replace("nwind.", "");\r
81     //        Debug.WriteLine(string.Format("{0:u} {1}", DateTime.Now, text));\r
82     //        //Debug.WriteLine(text);\r
83     //    }\r
84     //}\r
85 }\r