1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-26 19:47:20 +00:00

Better logging

This commit is contained in:
Jermolene 2014-01-26 18:53:31 +00:00
parent 37ca86ff3d
commit 3f9561dd95
5 changed files with 57 additions and 28 deletions

View File

@ -46,15 +46,6 @@ if($tw.node) {
/////////////////////////// Utility functions /////////////////////////// Utility functions
/*
Log a message
*/
$tw.utils.log = function(/* args */) {
if(console !== undefined && console.log !== undefined) {
return Function.apply.call(console.log, console, arguments);
}
};
/* /*
Check if an object has a property Check if an object has a property
*/ */

View File

@ -16,10 +16,13 @@ var widget = require("$:/core/modules/widgets/widget.js");
exports.startup = function() { exports.startup = function() {
var modules,n,m,f,commander; var modules,n,m,f,commander;
// Load modules // Load utility modules and initialise the logger
$tw.modules.applyMethods("utils",$tw.utils);
$tw.logger = new $tw.utils.Logger();
$tw.log = $tw.logger.log;
// Load other modules
$tw.modules.applyMethods("global",$tw); $tw.modules.applyMethods("global",$tw);
$tw.modules.applyMethods("config",$tw.config); $tw.modules.applyMethods("config",$tw.config);
$tw.modules.applyMethods("utils",$tw.utils);
if($tw.browser) { if($tw.browser) {
$tw.utils.getBrowserInfo($tw.browser); $tw.utils.getBrowserInfo($tw.browser);
} }

View File

@ -19,6 +19,8 @@ wiki: wiki to be synced
function Syncer(options) { function Syncer(options) {
var self = this; var self = this;
this.wiki = options.wiki; this.wiki = options.wiki;
// Make a logger
this.log = $tw.logger.makeLog("syncer");
// Find a working syncadaptor // Find a working syncadaptor
this.syncadaptor = undefined; this.syncadaptor = undefined;
$tw.modules.forEachModuleOfType("syncadaptor",function(title,module) { $tw.modules.forEachModuleOfType("syncadaptor",function(title,module) {
@ -37,17 +39,7 @@ Error handling
*/ */
Syncer.prototype.showError = function(error) { Syncer.prototype.showError = function(error) {
alert("Syncer error: " + error); alert("Syncer error: " + error);
$tw.utils.log("Syncer error: " + error); this.log("Syncer error: " + error);
};
/*
Message logging
*/
Syncer.prototype.log = function(/* arguments */) {
var args = Array.prototype.slice.call(arguments,0);
args[0] = "Syncer: " + args[0];
// Temporarily disable logging to help the wood vs. trees situation; we need better filtering of log messages
//$tw.utils.log.apply(null,args);
}; };
/* /*
@ -384,7 +376,7 @@ Syncer.prototype.processTaskQueue = function() {
// Dispatch the task // Dispatch the task
this.dispatchTask(task,function(err) { this.dispatchTask(task,function(err) {
if(err) { if(err) {
console.log("Sync error while processing '" + task.title + "':\n" + err); self.showError("Sync error while processing '" + task.title + "':\n" + err);
} }
// Mark that this task is no longer in progress // Mark that this task is no longer in progress
delete self.taskInProgress[task.title]; delete self.taskInProgress[task.title];

View File

@ -0,0 +1,43 @@
/*\
title: $:/core/modules/utils/logger.js
type: application/javascript
module-type: utils
A basic logging implementation
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Make a new logger
*/
function Logger() {
}
/*
Make a log function for a particular component
*/
Logger.prototype.makeLog = function(componentName) {
var self = this;
return function(/* args */) {
self.log.apply(self.log,[componentName + ":"].concat(Array.prototype.slice.call(arguments,0)));
};
};
/*
Log a message
*/
Logger.prototype.log = function(/* args */) {
if(console !== undefined && console.log !== undefined) {
return Function.apply.call(console.log, console, arguments);
}
};
exports.Logger = Logger;
})();

View File

@ -21,12 +21,12 @@ function FileSystemAdaptor(syncer) {
this.syncer = syncer; this.syncer = syncer;
this.watchers = {}; this.watchers = {};
this.pending = {}; this.pending = {};
this.log = $tw.logger.makeLog("FileSystem");
this.setwatcher = function(filename, title) { this.setwatcher = function(filename, title) {
return undefined; return undefined;
return this.watchers[filename] = this.watchers[filename] || return this.watchers[filename] = this.watchers[filename] ||
fs.watch(filename, {persistent: false}, function(e) { fs.watch(filename, {persistent: false}, function(e) {
console.log("Filesystem:", e, filename); self.log("Error:",e,filename);
if(e === "change") { if(e === "change") {
var tiddlers = $tw.loadTiddlersFromFile(filename).tiddlers; var tiddlers = $tw.loadTiddlersFromFile(filename).tiddlers;
for(var t in tiddlers) { for(var t in tiddlers) {
@ -161,7 +161,7 @@ FileSystemAdaptor.prototype.saveTiddler = function(tiddler,callback) {
if(err) { if(err) {
return callback(err); return callback(err);
} }
console.log("FileSystem: Saved file",fileInfo.filepath); self.log("Saved file",fileInfo.filepath);
_finish(); _finish();
}); });
}); });
@ -173,7 +173,7 @@ console.log("FileSystem: Saved file",fileInfo.filepath);
if(err) { if(err) {
return callback(err); return callback(err);
} }
console.log("FileSystem: Saved file",fileInfo.filepath); self.log("Saved file",fileInfo.filepath);
_finish(); _finish();
}); });
} }
@ -211,7 +211,7 @@ FileSystemAdaptor.prototype.deleteTiddler = function(title,callback) {
if(err) { if(err) {
return callback(err); return callback(err);
} }
console.log("FileSystem: Deleted file",fileInfo.filepath); self.log("Deleted file",fileInfo.filepath);
// Delete the metafile if present // Delete the metafile if present
if(fileInfo.hasMetaFile) { if(fileInfo.hasMetaFile) {
fs.unlink(fileInfo.filepath + ".meta",function(err) { fs.unlink(fileInfo.filepath + ".meta",function(err) {