function _fnLog( settings, level, msg, tn )
		{
			msg = 'DataTables warning: '+
				(settings ? 'table id='+settings.sTableId+' - ' : '')+msg;
		
			if ( tn ) {
				msg += '. For more information about this error, please see '+
				'http://datatables.net/tn/'+tn;
			}
		
			if ( ! level  ) {
				// Backwards compatibility pre 1.10
				var ext = DataTable.ext;
				var type = ext.sErrMode || ext.errMode;
		
				if ( settings ) {
					_fnCallbackFire( settings, null, 'error', [ settings, tn, msg ] );
				}
		
				if ( type == 'alert' ) {
					alert( msg );
				}
				else if ( type == 'throw' ) {
					throw new Error(msg);
				}
				else if ( typeof type == 'function' ) {
					type( settings, tn, msg );
				}
			}
			else if ( window.console && console.log ) {
				console.log( msg );
			}
		}
/**
		 * Log an error message
		 *  @param {object} settings dataTables settings object
		 *  @param {int} level log error messages, or display them to the user
		 *  @param {string} msg error message
		 *  @param {int} tn Technical note id to get more information about the error.
		 *  @memberof DataTable#oApi
		 */
Log an error message
@param {object} settings dataTables settings object
@param {int} level log error messages, or display them to the user
@param {string} msg error message
@param {int} tn Technical note id to get more information about the error.
Log an error message @param { object } settings dataTables settings object @param { int } level log error messages or display them to the user @param { string } msg error message @param { int } tn Technical note id to get more information about the error .
function _fnLog( settings, level, msg, tn )
		{
			msg = 'DataTables warning: '+
				(settings ? 'table id='+settings.sTableId+' - ' : '')+msg;
			if ( tn ) {
				msg += '. For more information about this error, please see '+
				'http://datatables.net/tn/'+tn;
			}
			if ( ! level  ) {
				var ext = DataTable.ext;
				var type = ext.sErrMode || ext.errMode;
				if ( settings ) {
					_fnCallbackFire( settings, null, 'error', [ settings, tn, msg ] );
				}
				if ( type == 'alert' ) {
					alert( msg );
				}
				else if ( type == 'throw' ) {
					throw new Error(msg);
				}
				else if ( typeof type == 'function' ) {
					type( settings, tn, msg );
				}
			}
			else if ( window.console && console.log ) {
				console.log( msg );
			}
		}
function _fnLog ( settings , level , msg , tn ) { msg = 'DataTables warning: ' + ( settings ? 'table id=' + settings . sTableId + ' - ' : '' ) + msg ; if ( tn ) { msg += '. For more information about this error, please see ' + 'http://datatables.net/tn/' + tn ; } if ( ! level ) { var ext = DataTable . ext ; var type = ext . sErrMode || ext . errMode ; if ( settings ) { _fnCallbackFire ( settings , null , 'error' , [ settings , tn , msg ] ) ; } if ( type == 'alert' ) { alert ( msg ) ; } else if ( type == 'throw' ) { throw new Error ( msg ) ; } else if ( typeof type == 'function' ) { type ( settings , tn , msg ) ; } } else if ( window . console && console . log ) { console . log ( msg ) ; } }
Log an error message
  @param {object} settings dataTables settings object
  @param {int} level log error messages, or display them to the user
  @param {string} msg error message
  @param {int} tn Technical note id to get more information about the error.
Log an error message @param { object } settings dataTables settings object @param { int } level log error messages or display them to the user @param { string } msg error message @param { int } tn Technical note id to get more information about the error .
// Backwards compatibility pre 1.10