4

In SDL Tridion 2013 there are two types of Automatic Activity scripts: C# Scriptlet and External Activity (a .NET assembly made available as a Template Building Block).

In the C# Scriptlet type there is a predefined Logger variable (Tridion.ContentManager.Workflow.Logger) which contains methods like Information, Verbose, Warning and Write.

When using an External Activity type, this class doesn't seem to be available in the Tridion.ContentManager.Workflow namespace.

Is there a way to use this same class in External Activity just as in C# Scriptlet, or do we have to use the Tridion.Logging.Logger class instead?

5

The Tridion.Logging class will be needed for logging.

| improve this answer | |
4

At the moment Tridion.ContentManager.Workflow namespace is not exposed for external usage. Technically, it is possible to grab the relevant DLL registered with the Tridion install from the GAC and use it, but this isn't recommended.

As TridionNut pointed out, the Tridion.Logging class should be used, or you may implement your own logger.

Internally the Tridion.ContentManager.Workflow.Logger class is just a wrapper of Tridion.Logging. Tridion.Logging.Logger contains a method Write() with several overloads and the Workflow Logger class wrapping it simply implements Write, Verbose, Information calling these overloads. Here is an example of the Information:

private const string _loggingComponent = "Tridion.ContentManager.Workflow";
public static void Information(string message)
{
    Logging.Logger.Write(message, _loggingComponent, LogCategory.Workflow, TraceEventType.Information);
}

So we can easily use the same kind of approach to implement our own wrapper class on top of Tridion.Logging.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.