Five Stars

tLogRow basic labeling

To see the data flow and show exceptions in my job, I use many Tlogrow components. I prefer one line logs so they can be easily filtered by grep live, and would like the line to begin with a line label that has meaning, rather than code. My only option in basic mode is to use __UNIQUE_NAME__ but that has no context, is just a sequential number. Is there a way in Basic Mode to just use "Label Format" instead of UNIQUE_NAME?

 

If not, where do request this feature, seems like such a no-brainer that since Label format defaults to __UNIQUE_NAME__ anyway, it should just the value of Label format instead when that box is checked. 

Tags (1)
5 REPLIES
Fifteen Stars

Re: tLogRow basic labeling

You are kind of limited with the options that the tLogRow supplies. You can raise a Jira here: https://jira.talendforge.org/secure/Dashboard.jspa

Alternatively you can make use of the tJavaRow (or tJavaFlex) and get real control over your logging to the System.out. There are many ways of logging in Talend, but I am sensing you like the System.out because you can use grep to search through your logs on your server. The problem you have with the tLogRow is that it ALWAYS runs unless you compile it deactivated. This can be expensive in terms of processing and is certainly time consuming. However, if you used a tJavaRow (or tJavaFlex) you could have a context variable configured for logging (a boolean, for example). Then you use a simple Java IF condition in these components. This IF decides whether you want logging switched on or off. You then create your own logging exactly as you want it using simple System.out.println("my logging") calls.

 

The advantage of this is that you can completely control your logging (what is output) and can switch it on or off at runtime using a simple context variable.

Rilhia Solutions
Five Stars

Re: tLogRow basic labeling

Five Stars

Re: tLogRow basic labeling

Thanks for your suggestion, but if I understand correctly, I think tLogRow has some special functionality that is difficult to recreate, namely that it adapts to the the structure of the row and all the data types the row contains. If I were to use TJavaRow by examples, it would need to know the row format, and would be brittle every time the row format changed.  Reflection could be used, but it would still be fairly complicated to print out all the types the way tLogRow does right? 

 

 

Fifteen Stars

Re: tLogRow basic labeling

Not strictly true actually. Not many people know about this, but each of the rows are classes which are created when you build the row within your job. If you have a row called row1 in your job and you attach a tJavaFlex to that row, try adding the following to the tJavaFlex and see what you get.....

 

System.out.println(row1.toLogString());
System.out.println(row1.toString());

If you don't like the format of those Strings, it is VERY easy to reformat them with a little bit of Java

Rilhia Solutions
Fifteen Stars

Re: tLogRow basic labeling

Did this solve your problem?

Rilhia Solutions