summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Core/Loggers/TraceLogger.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.Core/Loggers/TraceLogger.cs')
-rw-r--r--src/DotNetOpenAuth.Core/Loggers/TraceLogger.cs297
1 files changed, 297 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.Core/Loggers/TraceLogger.cs b/src/DotNetOpenAuth.Core/Loggers/TraceLogger.cs
new file mode 100644
index 0000000..9b0bb0f
--- /dev/null
+++ b/src/DotNetOpenAuth.Core/Loggers/TraceLogger.cs
@@ -0,0 +1,297 @@
+// <auto-generated />
+
+namespace DotNetOpenAuth.Loggers {
+ using System;
+ using System.Diagnostics;
+ using System.Security;
+ using System.Security.Permissions;
+
+ internal class TraceLogger : ILog {
+ private TraceSwitch traceSwitch;
+
+ internal TraceLogger(string name) {
+ traceSwitch = new TraceSwitch(name, name + " Trace Switch");
+ }
+
+ #region ILog Properties
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public bool IsDebugEnabled {
+ get { return this.traceSwitch.TraceVerbose; }
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public bool IsInfoEnabled {
+ get { return this.traceSwitch.TraceInfo; }
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public bool IsWarnEnabled {
+ get { return this.traceSwitch.TraceWarning; }
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public bool IsErrorEnabled {
+ get { return this.traceSwitch.TraceError; }
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public bool IsFatalEnabled {
+ get { return this.traceSwitch.TraceError; }
+ }
+
+ #endregion
+
+ private static bool IsSufficientPermissionGranted {
+ get {
+ PermissionSet permissions = new PermissionSet(PermissionState.None);
+ permissions.AddPermission(new KeyContainerPermission(PermissionState.Unrestricted));
+ permissions.AddPermission(new ReflectionPermission(ReflectionPermissionFlag.MemberAccess));
+ permissions.AddPermission(new RegistryPermission(PermissionState.Unrestricted));
+ permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag.ControlEvidence | SecurityPermissionFlag.UnmanagedCode | SecurityPermissionFlag.ControlThread));
+ var file = new FileIOPermission(PermissionState.None);
+ file.AllFiles = FileIOPermissionAccess.PathDiscovery | FileIOPermissionAccess.Read;
+ permissions.AddPermission(file);
+ try {
+ permissions.Demand();
+ return true;
+ } catch (SecurityException) {
+ return false;
+ }
+ }
+ }
+
+ #region ILog Methods
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Debug(object message) {
+ Trace.TraceInformation(message.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Debug(object message, Exception exception) {
+ Trace.TraceInformation(message + ": " + exception.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void DebugFormat(string format, params object[] args) {
+ Trace.TraceInformation(format, args);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void DebugFormat(string format, object arg0) {
+ Trace.TraceInformation(format, arg0);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void DebugFormat(string format, object arg0, object arg1) {
+ Trace.TraceInformation(format, arg0, arg1);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void DebugFormat(string format, object arg0, object arg1, object arg2) {
+ Trace.TraceInformation(format, arg0, arg1, arg2);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Info(object message) {
+ Trace.TraceInformation(message.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Info(object message, Exception exception) {
+ Trace.TraceInformation(message + ": " + exception.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void InfoFormat(string format, params object[] args) {
+ Trace.TraceInformation(format, args);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void InfoFormat(string format, object arg0) {
+ Trace.TraceInformation(format, arg0);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void InfoFormat(string format, object arg0, object arg1) {
+ Trace.TraceInformation(format, arg0, arg1);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void InfoFormat(string format, object arg0, object arg1, object arg2) {
+ Trace.TraceInformation(format, arg0, arg1, arg2);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Warn(object message) {
+ Trace.TraceWarning(message.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Warn(object message, Exception exception) {
+ Trace.TraceWarning(message + ": " + exception.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void WarnFormat(string format, params object[] args) {
+ Trace.TraceWarning(format, args);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void WarnFormat(string format, object arg0) {
+ Trace.TraceWarning(format, arg0);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void WarnFormat(string format, object arg0, object arg1) {
+ Trace.TraceWarning(format, arg0, arg1);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void WarnFormat(string format, object arg0, object arg1, object arg2) {
+ Trace.TraceWarning(format, arg0, arg1, arg2);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Error(object message) {
+ Trace.TraceError(message.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Error(object message, Exception exception) {
+ Trace.TraceError(message + ": " + exception.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void ErrorFormat(string format, params object[] args) {
+ Trace.TraceError(format, args);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void ErrorFormat(string format, object arg0) {
+ Trace.TraceError(format, arg0);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void ErrorFormat(string format, object arg0, object arg1) {
+ Trace.TraceError(format, arg0, arg1);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void ErrorFormat(string format, object arg0, object arg1, object arg2) {
+ Trace.TraceError(format, arg0, arg1, arg2);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Fatal(object message) {
+ Trace.TraceError(message.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void Fatal(object message, Exception exception) {
+ Trace.TraceError(message + ": " + exception.ToString());
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void FatalFormat(string format, params object[] args) {
+ Trace.TraceError(format, args);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void FatalFormat(string format, object arg0) {
+ Trace.TraceError(format, arg0);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void FatalFormat(string format, object arg0, object arg1) {
+ Trace.TraceError(format, arg0, arg1);
+ }
+
+ /// <summary>
+ /// See <see cref="ILog"/>.
+ /// </summary>
+ public void FatalFormat(string format, object arg0, object arg1, object arg2) {
+ Trace.TraceError(format, arg0, arg1, arg2);
+ }
+
+ #endregion
+
+ /// <summary>
+ /// Returns a new logger that uses the <see cref="System.Diagnostics.Trace"/> class
+ /// if sufficient CAS permissions are granted to use it, otherwise returns false.
+ /// </summary>
+ /// <returns>The created <see cref="ILog"/> instance.</returns>
+ internal static ILog Initialize(string name) {
+ return IsSufficientPermissionGranted ? new TraceLogger(name) : null;
+ }
+ }
+}