Skip to content

Commit 60a42bd

Browse files
committedJul 13, 2015
Allowing the use of log levels in the log core task
1 parent a1a3ed7 commit 60a42bd

File tree

2 files changed

+31
-25
lines changed

2 files changed

+31
-25
lines changed
 

‎index.js

+23-19
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ worksmith = wfLoader
3939
function getStepName(step) {
4040
if (step.name) { return step.name }
4141
var name = step.name || step.task;
42-
if ("function" === typeof name) {
43-
name = "<Anonymous>" + name.name
42+
if ("function" === typeof name) {
43+
name = "<Anonymous>" + name.name
4444
}
4545
return step.name = name;
4646
}
@@ -50,7 +50,7 @@ var workflow = {
5050
use: function(ns, taskLibrary) {
5151
resolvers[ns] = taskLibrary;
5252
},
53-
53+
5454
createAdapter: function(object) {
5555
return function getType(name) {
5656
var method = object[name];
@@ -68,7 +68,11 @@ var workflow = {
6868
configure: function(options) {
6969
_.extend(settings, options);
7070
},
71-
71+
72+
hasLogLevel: function(level) {
73+
return settings.logger[level] !== undefined
74+
},
75+
7276
log: function() {
7377
var level = arguments[0]
7478
settings.logger[level].apply(settings.logger, Array.prototype.slice.call(arguments,1))
@@ -94,8 +98,8 @@ var workflow = {
9498
if ("string" === typeof task) return workflow.getTaskType(task);
9599
return task;
96100
},
97-
98-
101+
102+
99103

100104
define: function (workflowDefinition) {
101105

@@ -162,7 +166,7 @@ var workflow = {
162166
initializeContext(context)
163167
var decorated = wfInstance(context)
164168
debug("preparing: %s", getStepName(workflowDefinition))
165-
169+
166170

167171
var markWorkflowTerminate = function(done) {
168172
context.completionStack = context.completionStack || []
@@ -172,15 +176,15 @@ var workflow = {
172176
}
173177
}
174178

175-
179+
176180
return function execute(done) {
177181

178-
182+
179183
if (!checkCondition(context))
180184
return done()
181-
185+
182186
markWorkflowTerminate(done)
183-
187+
184188
function invokeDecorated(err, res, next) {
185189
function createExecutionThisContext() {
186190
return {
@@ -198,7 +202,7 @@ var workflow = {
198202
}
199203
}
200204
}
201-
205+
202206
var args = getArgumentsFromAnnotations(context, decorated, wfInstance)
203207
args.push(next)
204208
try {
@@ -213,7 +217,7 @@ var workflow = {
213217
var errorWfDef = context.get(workflowDefinition.onError);
214218
var errorWf = workflow.define(errorWfDef);
215219
context.error = err;
216-
errorWf(context, function(errHandlerErr, errRes) {
220+
errorWf(context, function(errHandlerErr, errRes) {
217221
if (errorWfDef.handleError) err = errHandlerErr;
218222
next(err, res);
219223
})
@@ -236,14 +240,14 @@ var workflow = {
236240
}
237241
next(err, result)
238242
}
239-
243+
240244
function setWorkflowResultTo(err, result, next) {
241245
if (err) { return next(err, result) }
242246
process.env.WSDEBUGPARAMS && debug("...result is", result)
243247
context.set(workflowDefinition.resultTo, result)
244248
next(err, result)
245249
}
246-
250+
247251
function buildUpMicroworkflow() {
248252
var tasks = [invokeDecorated];
249253
workflowDefinition.onError && tasks.push(onError)
@@ -254,23 +258,23 @@ var workflow = {
254258
}
255259

256260
var tasks = buildUpMicroworkflow();
257-
261+
258262
function executeNextThunkOrComplete(err, res) {
259263
var thunk = tasks.shift();
260264
if (thunk) {
261265
return thunk( err, res, executeNextThunkOrComplete)
262266
}
263-
267+
264268
debug("Finished executing WF %s", getStepName(workflowDefinition))
265269
var originalDone = context.originalTerminate || done;
266270
var donePosition = context.completionStack.indexOf(originalDone);
267271
context.completionStack.splice(donePosition, 1)
268272
done(err, res, context)
269273
}
270-
274+
271275
debug("Executing WF %s", getStepName(workflowDefinition))
272276
return executeNextThunkOrComplete()
273-
277+
274278
}
275279
}
276280
},

‎tasks/log.js

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
var debug = require('debug')('workflow:activities:log')
22

3-
LogActivty.annotations = {inject: ["message"]}
3+
LogActivity.annotations = { inject: ["message", "level"] }
44

5-
function LogActivty(node) {
5+
function LogActivity(node) {
66
var worksmith = this;
77
return function (context) {
8-
return function(message, done) {
9-
worksmith.log("log", message || "Log activity")
10-
done();
8+
return function(message, level, done) {
9+
level = level || (worksmith.hasLogLevel("log") ? "log" : "info")
10+
if (!worksmith.hasLogLevel(level)) return done(new Error("The configured logger has no method " + level))
11+
worksmith.log(level, message || "Log activity")
12+
done()
1113
}
1214
}
1315

1416
}
15-
module.exports = LogActivty
17+
module.exports = LogActivity

0 commit comments

Comments
 (0)
Please sign in to comment.