INFO / ERROR/ WARNING log messages - What determines these lines?

Hi all,

If anyone can point me in the direciton to how TC determines if a line in a build log is info / error / warning.

Python script output

Within a python script I am running as a command line, "python test_runner.py", I use the following:

    ch = logging.StreamHandler(stream=sys.stdout)
    ch.setLevel(logging.DEBUG)
    logger = logging.getLogger()
    logger.addHandler(ch)
    logger.setLevel(logging.DEBUG)

I presume, since I am outputting all content to stdout then TC just picks everything up as an info message?

Further, I would possibly need to output as stderr to actually register error output.

Unity3D Log output

Unity3D builds that I've scripted use a Makefile with many customisations to the normal build process (hence why I don't use the Unity3D plugin).

I use tail -f logfile & within the Makefile to keep a watch of the log. However the TC build log seems to incorrectly mark certain lines as errors.

I presume this is actually a mix of the process throwing warnings / errors and this getting overlaid on the tail output?

3 comments
Comment actions Permalink

Hi,

I'd like to bring this topic back, since I have the same question.

We're using python for a lot of the jobs we're running through TeamCity, and using logging to log messages to stdout. But it seems TeamCity ignores the message level of these messages.

Is there a way to tell TeamCity to register the messages with the correct level?

 

0
Comment actions Permalink

When you re-google this problem and find that you originally asked the question.

I'll dig some more into this now.

0
Comment actions Permalink

Hi,

 

In general, when executing the scripts externally, teamcity can only pick the output and parse it, log levels internal to python are not put out to the stdout and that's why they weren't parsed. stderr is actually parsed as a warning. Only errors that make builds fail will be considered as errors.

 

If you would like further customization, rather than throwing it as is to stdout, you can consider using service messages: https://www.jetbrains.com/help/teamcity/service-messages.html#Reporting+Messages+for+Build+Log

 

This said, you might want to check out the new bundled python runner, which should have much better handling of python-specific code. If you face issues with it, open a feature request in our tracker: https://youtrack.jetbrains.com/issues/TW

0

Please sign in to leave a comment.