From: Dan Vanderkam Date: Wed, 5 Nov 2014 00:09:29 +0000 (-0500) Subject: remove all traces of Dygraph.log X-Git-Tag: v1.1.0~32^2~2 X-Git-Url: https://adrianiainlam.tk/git/?a=commitdiff_plain;h=8a68db7d96431554122d0ffc0356cc6aa2e6b822;p=dygraphs.git remove all traces of Dygraph.log --- diff --git a/auto_tests/misc/local.js b/auto_tests/misc/local.js index 05927a5..4b1ea40 100644 --- a/auto_tests/misc/local.js +++ b/auto_tests/misc/local.js @@ -24,12 +24,12 @@ var DygraphsLocalTester = function() { * In some cases we will still allow warnings to be warnings, however. */ DygraphsLocalTester.prototype.overrideWarn = function() { - // save Dygraph.warn so we can catch warnings. - var originalDygraphWarn = Dygraph.warn; - Dygraph.warn = function(msg) { - // This warning is still + // save console.warn so we can catch warnings. + var originalWarn = console.warn; + console.warn = function(msg) { + // This warning is pervasive enough that we'll let it slide (for now). if (msg == "Using default labels. Set labels explicitly via 'labels' in the options parameter") { - originalDygraphWarn(msg); + originalWarn(msg); return; } throw 'Warnings not permitted: ' + msg; diff --git a/dygraph-canvas.js b/dygraph-canvas.js index 17908e3..efcad10 100644 --- a/dygraph-canvas.js +++ b/dygraph-canvas.js @@ -559,7 +559,7 @@ DygraphCanvasRenderer._errorPlotter = function(e) { var fillGraph = g.getBooleanOption("fillGraph", setName); if (fillGraph) { - Dygraph.warn("Can't use fillGraph option with error bars"); + console.warn("Can't use fillGraph option with error bars"); } var ctx = e.drawingContext; diff --git a/dygraph-layout.js b/dygraph-layout.js index befffd6..bf3d7e0 100644 --- a/dygraph-layout.js +++ b/dygraph-layout.js @@ -149,13 +149,13 @@ DygraphLayout.prototype.setAnnotations = function(ann) { for (var i = 0; i < ann.length; i++) { var a = {}; if (!ann[i].xval && ann[i].x === undefined) { - Dygraph.error("Annotations must have an 'x' property"); + console.error("Annotations must have an 'x' property"); return; } if (ann[i].icon && !(ann[i].hasOwnProperty('width') && ann[i].hasOwnProperty('height'))) { - Dygraph.error("Must set width and height when setting " + + console.error("Must set width and height when setting " + "annotation.icon property"); return; } @@ -204,7 +204,7 @@ DygraphLayout.prototype._evaluateLimits = function() { axis.ylogrange = Dygraph.log10(axis.maxyval) - Dygraph.log10(axis.minyval); axis.ylogscale = (axis.ylogrange !== 0 ? 1.0 / axis.ylogrange : 1.0); if (!isFinite(axis.ylogrange) || isNaN(axis.ylogrange)) { - Dygraph.error('axis ' + i + ' of graph at ' + axis.g + + console.error('axis ' + i + ' of graph at ' + axis.g + ' can\'t be displayed in log scale for range [' + axis.minyval + ' - ' + axis.maxyval + ']'); } diff --git a/dygraph-options.js b/dygraph-options.js index 98ef35f..b0fad61 100644 --- a/dygraph-options.js +++ b/dygraph-options.js @@ -183,7 +183,7 @@ DygraphOptions.prototype.reparseSeries = function() { if (typeof(axis) == 'string') { if (!this.series_.hasOwnProperty(axis)) { - Dygraph.error("Series " + seriesName + " wants to share a y-axis with " + + console.error("Series " + seriesName + " wants to share a y-axis with " + "series " + axis + ", which does not define its own axis."); return; } diff --git a/dygraph-tickers.js b/dygraph-tickers.js index a3fe90a..573377f 100644 --- a/dygraph-tickers.js +++ b/dygraph-tickers.js @@ -451,7 +451,7 @@ Dygraph.getDateAxis = function(start_time, end_time, granularity, opts, dg) { months = Dygraph.LONG_TICK_PLACEMENTS[granularity].months; year_mod = Dygraph.LONG_TICK_PLACEMENTS[granularity].year_mod; } else { - Dygraph.warn("Span of dates is too long"); + console.warn("Span of dates is too long"); } var start_year = new Date(start_time).getFullYear(); diff --git a/dygraph-utils.js b/dygraph-utils.js index dc93023..9158aa5 100644 --- a/dygraph-utils.js +++ b/dygraph-utils.js @@ -27,20 +27,6 @@ Dygraph.log10 = function(x) { return Math.log(x) / Dygraph.LN_TEN; }; -// Various logging levels. -Dygraph.DEBUG = 1; -Dygraph.INFO = 2; -Dygraph.WARNING = 3; -Dygraph.ERROR = 3; - -// -// Set this to log stack traces on warnings, etc. -// This requires stacktrace.js, which is up to you to provide. -// A copy can be found in the dygraphs repo, or at -// https://github.com/eriwen/javascript-stacktrace -Dygraph.LOG_STACK_TRACES = false; -// - /** A dotted line stroke pattern. */ Dygraph.DOTTED_LINE = [2, 2]; /** A dashed line stroke pattern. */ @@ -49,94 +35,6 @@ Dygraph.DASHED_LINE = [7, 3]; Dygraph.DOT_DASH_LINE = [7, 2, 2, 2]; /** - * Log an error on the JS console at the given severity. - * @param {number} severity One of Dygraph.{DEBUG,INFO,WARNING,ERROR} - * @param {string} message The message to log. - * @private - */ -Dygraph.log = function(severity, message) { - // - var st; - if (typeof(printStackTrace) != 'undefined') { - try { - // Remove uninteresting bits: logging functions and paths. - st = printStackTrace({guess:false}); - while (st[0].indexOf("stacktrace") != -1) { - st.splice(0, 1); - } - - st.splice(0, 2); - for (var i = 0; i < st.length; i++) { - st[i] = st[i].replace(/\([^)]*\/(.*)\)/, '@$1') - .replace(/\@.*\/([^\/]*)/, '@$1') - .replace('[object Object].', ''); - } - var top_msg = st.splice(0, 1)[0]; - message += ' (' + top_msg.replace(/^.*@ ?/, '') + ')'; - } catch(e) { - // Oh well, it was worth a shot! - } - } - // - - if (typeof(window.console) != 'undefined') { - // In older versions of Firefox, only console.log is defined. - var console = window.console; - var log = function(console, method, msg) { - if (method && typeof(method) == 'function') { - method.call(console, msg); - } else { - console.log(msg); - } - }; - - switch (severity) { - case Dygraph.DEBUG: - log(console, console.debug, 'dygraphs: ' + message); - break; - case Dygraph.INFO: - log(console, console.info, 'dygraphs: ' + message); - break; - case Dygraph.WARNING: - log(console, console.warn, 'dygraphs: ' + message); - break; - case Dygraph.ERROR: - log(console, console.error, 'dygraphs: ' + message); - break; - } - } - - // - if (Dygraph.LOG_STACK_TRACES) { - window.console.log(st.join('\n')); - } - // -}; - -/** - * @param {string} message - * @private - */ -Dygraph.info = function(message) { - Dygraph.log(Dygraph.INFO, message); -}; - -/** - * @param {string} message - * @private - */ -Dygraph.warn = function(message) { - Dygraph.log(Dygraph.WARNING, message); -}; - -/** - * @param {string} message - */ -Dygraph.error = function(message) { - Dygraph.log(Dygraph.ERROR, message); -}; - -/** * Return the 2d context for a dygraph canvas. * * This method is only exposed for the sake of replacing the function in @@ -628,7 +526,7 @@ Dygraph.dateParser = function(dateStr) { } if (!d || isNaN(d)) { - Dygraph.error("Couldn't parse " + dateStr + " as a date"); + console.error("Couldn't parse " + dateStr + " as a date"); } return d; }; @@ -1292,7 +1190,7 @@ Dygraph.parseFloat_ = function(x, opt_line_no, opt_line) { if (opt_line !== undefined && opt_line_no !== undefined) { msg += " on line " + (1+(opt_line_no||0)) + " ('" + opt_line + "') of CSV."; } - Dygraph.error(msg); + console.error(msg); return null; }; diff --git a/dygraph.js b/dygraph.js index 366323a..c1df8df 100644 --- a/dygraph.js +++ b/dygraph.js @@ -72,7 +72,7 @@ var Dygraph = function(div, data, opts, opt_fourth_param) { // Old versions of dygraphs took in the series labels as a constructor // parameter. This doesn't make sense anymore, but it's easy to continue // to support this usage. - Dygraph.warn("Using deprecated four-argument dygraph constructor"); + console.warn("Using deprecated four-argument dygraph constructor"); this.__old_init__(div, data, opts, opt_fourth_param); } else { this.__init__(div, data, opts); @@ -151,7 +151,7 @@ Dygraph.numberValueFormatter = function(x, opts, pt, g) { k_labels = Dygraph.KMB_LABELS; } if (kmg2) { - if (kmb) Dygraph.warn("Setting both labelsKMB and labelsKMG2. Pick one!"); + if (kmb) console.warn("Setting both labelsKMB and labelsKMG2. Pick one!"); k = 1024; k_labels = Dygraph.KMG2_BIG_LABELS; m_labels = Dygraph.KMG2_SMALL_LABELS; @@ -420,7 +420,7 @@ Dygraph.prototype.__init__ = function(div, file, attrs) { } if (!div) { - Dygraph.error("Constructing dygraph with a non-existent div!"); + console.error("Constructing dygraph with a non-existent div!"); return; } @@ -642,9 +642,9 @@ Dygraph.prototype.toString = function() { Dygraph.prototype.attr_ = function(name, seriesName) { // if (typeof(Dygraph.OPTIONS_REFERENCE) === 'undefined') { - Dygraph.error('Must include options reference JS for testing'); + console.error('Must include options reference JS for testing'); } else if (!Dygraph.OPTIONS_REFERENCE.hasOwnProperty(name)) { - Dygraph.error('Dygraphs is using property ' + name + ', which has no ' + + console.error('Dygraphs is using property ' + name + ', which has no ' + 'entry in the Dygraphs.OPTIONS_REFERENCE listing.'); // Only log this error once. Dygraph.OPTIONS_REFERENCE[name] = true; @@ -2649,7 +2649,7 @@ Dygraph.prototype.drawGraph_ = function() { if (this.getStringOption("timingName")) { var end = new Date(); - Dygraph.info(this.getStringOption("timingName") + " - drawGraph: " + (end - start) + "ms"); + console.log(this.getStringOption("timingName") + " - drawGraph: " + (end - start) + "ms"); } }; @@ -3071,7 +3071,7 @@ Dygraph.prototype.parseCSV_ = function(data) { // TODO(danvk): figure out an appropriate way to flag parse errors. vals = inFields[j].split("/"); if (vals.length != 2) { - Dygraph.error('Expected fractional "num/den" values in CSV data ' + + console.error('Expected fractional "num/den" values in CSV data ' + "but found a value '" + inFields[j] + "' on line " + (1 + i) + " ('" + line + "') which is not of this form."); fields[j] = [0, 0]; @@ -3083,7 +3083,7 @@ Dygraph.prototype.parseCSV_ = function(data) { } else if (this.getBooleanOption("errorBars")) { // If there are error bars, values are (value, stddev) pairs if (inFields.length % 2 != 1) { - Dygraph.error('Expected alternating (value, stdev.) pairs in CSV data ' + + console.error('Expected alternating (value, stdev.) pairs in CSV data ' + 'but line ' + (1 + i) + ' has an odd number of values (' + (inFields.length - 1) + "): '" + line + "'"); } @@ -3104,7 +3104,7 @@ Dygraph.prototype.parseCSV_ = function(data) { Dygraph.parseFloat_(vals[1], i, line), Dygraph.parseFloat_(vals[2], i, line) ]; } else { - Dygraph.warn('When using customBars, values must be either blank ' + + console.warn('When using customBars, values must be either blank ' + 'or "low;center;high" tuples (got "' + val + '" on line ' + (1+i)); } @@ -3121,7 +3121,7 @@ Dygraph.prototype.parseCSV_ = function(data) { } if (fields.length != expectedCols) { - Dygraph.error("Number of columns in line " + i + " (" + fields.length + + console.error("Number of columns in line " + i + " (" + fields.length + ") does not agree with number of labels (" + expectedCols + ") " + line); } @@ -3136,7 +3136,7 @@ Dygraph.prototype.parseCSV_ = function(data) { if (fields[j]) all_null = false; } if (all_null) { - Dygraph.warn("The dygraphs 'labels' option is set, but the first row " + + console.warn("The dygraphs 'labels' option is set, but the first row " + "of CSV data ('" + line + "') appears to also contain " + "labels. Will drop the CSV labels and use the option " + "labels."); @@ -3147,7 +3147,7 @@ Dygraph.prototype.parseCSV_ = function(data) { } if (outOfOrder) { - Dygraph.warn("CSV is out of order; order it correctly to speed loading."); + console.warn("CSV is out of order; order it correctly to speed loading."); ret.sort(function(a,b) { return a[0] - b[0]; }); } @@ -3165,17 +3165,17 @@ Dygraph.prototype.parseCSV_ = function(data) { Dygraph.prototype.parseArray_ = function(data) { // Peek at the first x value to see if it's numeric. if (data.length === 0) { - Dygraph.error("Can't plot empty data set"); + console.error("Can't plot empty data set"); return null; } if (data[0].length === 0) { - Dygraph.error("Data set cannot contain an empty row"); + console.error("Data set cannot contain an empty row"); return null; } var i; if (this.attr_("labels") === null) { - Dygraph.warn("Using default labels. Set labels explicitly via 'labels' " + + console.warn("Using default labels. Set labels explicitly via 'labels' " + "in the options parameter"); this.attrs_.labels = [ "X" ]; for (i = 1; i < data[0].length; i++) { @@ -3185,7 +3185,7 @@ Dygraph.prototype.parseArray_ = function(data) { } else { var num_labels = this.attr_("labels"); if (num_labels.length != data[0].length) { - Dygraph.error("Mismatch between number of labels (" + num_labels + ")" + + console.error("Mismatch between number of labels (" + num_labels + ")" + " and number of columns in array (" + data[0].length + ")"); return null; } @@ -3201,13 +3201,13 @@ Dygraph.prototype.parseArray_ = function(data) { var parsedData = Dygraph.clone(data); for (i = 0; i < data.length; i++) { if (parsedData[i].length === 0) { - Dygraph.error("Row " + (1 + i) + " of data is empty"); + console.error("Row " + (1 + i) + " of data is empty"); return null; } if (parsedData[i][0] === null || typeof(parsedData[i][0].getTime) != 'function' || isNaN(parsedData[i][0].getTime())) { - Dygraph.error("x value in row " + (1 + i) + " is not a Date"); + console.error("x value in row " + (1 + i) + " is not a Date"); return null; } parsedData[i][0] = parsedData[i][0].getTime(); @@ -3261,7 +3261,7 @@ Dygraph.prototype.parseDataTable_ = function(data) { this.attrs_.axes.x.ticker = Dygraph.numericTicks; this.attrs_.axes.x.axisLabelFormatter = this.attrs_.axes.x.valueFormatter; } else { - Dygraph.error("only 'date', 'datetime' and 'number' types are supported " + + console.error("only 'date', 'datetime' and 'number' types are supported " + "for column 1 of DataTable input (Got '" + indepType + "')"); return null; } @@ -3285,7 +3285,7 @@ Dygraph.prototype.parseDataTable_ = function(data) { } hasAnnotations = true; } else { - Dygraph.error("Only 'number' is supported as a dependent type with Gviz." + + console.error("Only 'number' is supported as a dependent type with Gviz." + " 'string' is only supported if displayAnnotations is true"); } } @@ -3307,7 +3307,7 @@ Dygraph.prototype.parseDataTable_ = function(data) { var row = []; if (typeof(data.getValue(i, 0)) === 'undefined' || data.getValue(i, 0) === null) { - Dygraph.warn("Ignoring row " + i + + console.warn("Ignoring row " + i + " of DataTable because of undefined or null first column."); continue; } @@ -3353,7 +3353,7 @@ Dygraph.prototype.parseDataTable_ = function(data) { } if (outOfOrder) { - Dygraph.warn("DataTable is out of order; order it correctly to speed loading."); + console.warn("DataTable is out of order; order it correctly to speed loading."); ret.sort(function(a,b) { return a[0] - b[0]; }); } this.rawData_ = ret; @@ -3415,7 +3415,7 @@ Dygraph.prototype.start_ = function() { req.send(null); } } else { - Dygraph.error("Unknown data format: " + (typeof data)); + console.error("Unknown data format: " + (typeof data)); } }; @@ -3506,7 +3506,7 @@ Dygraph.mapLegacyOptions_ = function(attrs) { }; var map = function(opt, axis, new_opt) { if (typeof(attrs[opt]) != 'undefined') { - Dygraph.warn("Option " + opt + " is deprecated. Use the " + + console.warn("Option " + opt + " is deprecated. Use the " + new_opt + " option for the " + axis + " axis instead. " + "(e.g. { axes : { " + axis + " : { " + new_opt + " : ... } } } " + "(see http://dygraphs.com/per-axis.html for more information."); @@ -3549,7 +3549,7 @@ Dygraph.prototype.resize = function(width, height) { this.resize_lock = true; if ((width === null) != (height === null)) { - Dygraph.warn("Dygraph.resize() should be called with zero parameters or " + + console.warn("Dygraph.resize() should be called with zero parameters or " + "two non-NULL parameters. Pretending it was zero."); width = height = null; } @@ -3612,7 +3612,7 @@ Dygraph.prototype.visibility = function() { Dygraph.prototype.setVisibility = function(num, value) { var x = this.visibility(); if (num < 0 || num >= x.length) { - Dygraph.warn("invalid series number in setVisibility: " + num); + console.warn("invalid series number in setVisibility: " + num); } else { x[num] = value; this.predraw_(); @@ -3640,7 +3640,7 @@ Dygraph.prototype.setAnnotations = function(ann, suppressDraw) { Dygraph.addAnnotationRule(); this.annotations_ = ann; if (!this.layout_) { - Dygraph.warn("Tried to setAnnotations before dygraph was ready. " + + console.warn("Tried to setAnnotations before dygraph was ready. " + "Try setting them in a ready() block. See " + "dygraphs.com/tests/annotation.html"); return; @@ -3737,5 +3737,5 @@ Dygraph.addAnnotationRule = function() { } } - Dygraph.warn("Unable to add default annotation CSS rule; display may be off."); + console.warn("Unable to add default annotation CSS rule; display may be off."); }; diff --git a/plugins/legend.js b/plugins/legend.js index fb93b41..d0a6fc8 100644 --- a/plugins/legend.js +++ b/plugins/legend.js @@ -88,7 +88,7 @@ legend.prototype.activate = function(g) { try { div.style[name] = messagestyle[name]; } catch (e) { - Dygraph.warn("You are using unsupported css properties for your " + + console.warn("You are using unsupported css properties for your " + "browser in labelsDivStyles"); } } diff --git a/plugins/range-selector.js b/plugins/range-selector.js index 3a70e7d..8842546 100644 --- a/plugins/range-selector.js +++ b/plugins/range-selector.js @@ -74,7 +74,7 @@ rangeSelector.prototype.createInterface_ = function() { // Range selector and animatedZooms have a bad interaction. See issue 359. if (this.getOption_('animatedZooms')) { - Dygraph.warn('Animated zooms and range selector are not compatible; disabling animatedZooms.'); + console.warn('Animated zooms and range selector are not compatible; disabling animatedZooms.'); this.dygraph_.updateOptions({animatedZooms: false}, true); } @@ -544,7 +544,7 @@ rangeSelector.prototype.drawStaticLayer_ = function() { try { this.drawMiniPlot_(); } catch(ex) { - Dygraph.warn(ex); + console.warn(ex); } var margin = 0.5;