/////////////////////////////////////////////////////////////////////// /// <summary> /// Default logger. Currently, uses the Trace class (i.e. sends events /// to the current trace listeners, if any). /// </summary> /// <param name="sender">Should be null.</param> /// <param name="e">The data associated with this event.</param> private static void LogEventHandler( object sender, LogEventArgs e ) { #if !NET_COMPACT_20 if (e == null) return; string message = e.Message; if (message == null) { message = "<null>"; } else { message = message.Trim(); if (message.Length == 0) message = "<empty>"; } object errorCode = e.ErrorCode; string type = "error"; if ((errorCode is SQLiteErrorCode) || (errorCode is int)) { SQLiteErrorCode rc = (SQLiteErrorCode)(int)errorCode; rc &= SQLiteErrorCode.NonExtendedMask; if (rc == SQLiteErrorCode.Ok) { type = "message"; } else if (rc == SQLiteErrorCode.Notice) { type = "notice"; } else if (rc == SQLiteErrorCode.Warning) { type = "warning"; } else if ((rc == SQLiteErrorCode.Row) || (rc == SQLiteErrorCode.Done)) { type = "data"; } } else if (errorCode == null) { type = "trace"; } if ((errorCode != null) && !Object.ReferenceEquals(errorCode, String.Empty)) { Trace.WriteLine(String.Format( CultureInfo.CurrentCulture, "SQLite {0} ({1}): {2}", type, errorCode, message)); } else { Trace.WriteLine(String.Format( CultureInfo.CurrentCulture, "SQLite {0}: {1}", type, message)); } #endif }