43fe0c77b88bc27cb930f11e642b75ea544f8aea
[platform/core/csapi/tizenfx.git] / src / Tizen / LogTraceListener.cs
1 using System;\r
2 using System.Text;\r
3 using System.Diagnostics;\r
4 \r
5 namespace Tizen\r
6 {\r
7     /// <summary>\r
8     /// Directs tracing or debugging output to Tizen logging system.\r
9     /// </summary>\r
10     public class LogTraceListener : TraceListener\r
11     {\r
12         private string tagName = null;\r
13         private StringBuilder buf = new StringBuilder();\r
14 \r
15         /// <summary>\r
16         /// Initializes a new instance of the LogTraceListener class, using the specfied tag name of the logging system.\r
17         /// </summary>\r
18         /// <param name="tag">The tag name of the log message.</param>\r
19         public LogTraceListener(string tag) : base("DLOG")\r
20         {\r
21             this.tagName = tag;\r
22         }\r
23 \r
24         /// <summary>\r
25         /// The tag name of the log message.\r
26         /// </summary>\r
27         public string Tag\r
28         {\r
29             get { return tagName; }\r
30             set { tagName = value; }\r
31         }\r
32 \r
33         private void WriteImpl(string message)\r
34         {\r
35             if (NeedIndent)\r
36             {\r
37                 WriteIndent();\r
38             }\r
39             buf.Append(message);\r
40         }\r
41 \r
42         /// <summary>\r
43         /// Writes an error message to the logging system.\r
44         /// </summary>\r
45         /// <param name="message">The error message to print.</param>\r
46         public override void Fail(string message)\r
47         {\r
48             Fail(message, null);\r
49         }\r
50 \r
51         /// <summary>\r
52         /// Writes an error message and a detailed error message to the logging system.\r
53         /// </summary>\r
54         /// <param name="message">The error message to print.</param>\r
55         /// <param name="detailMessage">The detailed error message to print.</param>\r
56         public override void Fail(string message, string detailMessage)\r
57         {\r
58             StringBuilder failBuf = new StringBuilder();\r
59             failBuf.Append("Fail: ");\r
60             failBuf.Append(message);\r
61             if (!String.IsNullOrEmpty(detailMessage))\r
62             {\r
63                 failBuf.Append(" ");\r
64                 failBuf.Append(detailMessage);\r
65             }\r
66             Log.Error(tagName, failBuf.ToString(), null);\r
67         }\r
68 \r
69         /// <summary>\r
70         /// Writes a log message to the logging system.\r
71         /// </summary>\r
72         /// <param name="message">The log message to print.</param>\r
73         public override void Write(string message)\r
74         {\r
75             WriteImpl(message);\r
76         }\r
77 \r
78         /// <summary>\r
79         /// Writes a log message followed by the current line terminator to the logging system.\r
80         /// </summary>\r
81         /// <param name="message">The log message to print.</param>\r
82         public override void WriteLine(string message)\r
83         {\r
84             WriteImpl(message + Environment.NewLine);\r
85             NeedIndent = true;\r
86             Flush();\r
87         }\r
88 \r
89         /// <summary>\r
90         /// Causes buffered data to be written to the logging system.\r
91         /// </summary>\r
92         public override void Flush()\r
93         {\r
94             Log.Debug(tagName, buf.ToString(), null);\r
95             buf.Clear();\r
96         }\r
97     }\r
98 }\r