# Reducing log level for the LogViewer

**URL:** <https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745>\
**Category:** Web Testing\
**Tags:** katalon-studio\
**Created:** [May 7, 2018, 4:05pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745 "2018-05-07T16:05:24Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![A\_B](https://avatars.discourse-cdn.com/v4/letter/a/c67d28/32.png) [@A\_B](https://forum.katalon.com/u/A_B)\
**Post date:** [May 7, 2018, 4:05pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/1 "2018-05-07T16:05:24Z")

</div>

Hi. I just started playing with Katalon and so far enjoying the product. In my test, I am comparing UI table with some DB data and, as you would imagine, it involves some loops and some conditions for each cell. It appears that every statement is being logged to the LogViewer so a LOT of time is being spent updating the LogViewer UI tree. Please let me know if there is a way to stop logging every single statement and function call to the log viewer. Is there a way to be more selective (log levels, test entry/exit only, etc). Thanks

---

<div class="post-metadata">

**Author:** ![Peter\_Wilson](https://avatars.discourse-cdn.com/v4/letter/p/9fc29f/32.png) [@Peter\_Wilson](https://forum.katalon.com/u/Peter_Wilson)\
**Post date:** [May 9, 2018, 8:37pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/2 "2018-05-09T20:37:44Z")

</div>

You can reduce what you see by changing the view to show Failed or Error messages by clicking the Tree View icon, next to the Scroll Lock icon.  
However, all the commands are still written to the Console and end up in the Report folder after the test suites are completed.

---

<div class="post-metadata">

**Author:** ![Mate\_Mrse](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/mate_mrse/32/345_2.png) [@Mate\_Mrse](https://forum.katalon.com/u/Mate_Mrse)\
**Post date:** [May 10, 2018, 6:54am UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/3 "2018-05-10T06:54:22Z")

</div>

Upvoted. The logs are a mess.

---

<div class="post-metadata">

**Author:** ![Russ\_Thomas](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/russ_thomas/32/11884_2.png) [@Russ\_Thomas](https://forum.katalon.com/u/Russ_Thomas)\
**Post date:** [May 10, 2018, 11:47am UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/4 "2018-05-10T11:47:21Z")

</div>

It’s been suggested and upvoted and ticketed by Liam… I guess we need more votes?

> [@Two Suggestions: Filtered Log Viewer and Filtered Console logs](http://forum.katalon.com/t/two-suggestions-filtered-log-viewer-and-filtered-console-logs/9789):
>
> While developing test cases I use the Log Viewer a lot. Sometimes the Console too, but not quite as much. One thing that would improve BOTH would be the ability to filter the display to see messages I’m interested in and reduce the “noise”. Note: I’m aware of the Log Viewer Info/Passed/Failed/Error/Warning and Not Run switches. My idea is to filter ALL output based on a string I specify. And mostly this would apply to INFO messages which generate a lot of (essentialy meaningless) noise (e.g…

---

<div class="post-metadata">

**Author:** ![Oliver\_Gramberg](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/oliver_gramberg/32/7786_2.png) [@Oliver\_Gramberg](https://forum.katalon.com/u/Oliver_Gramberg)\
**Post date:** [June 1, 2018, 10:52am UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/5 "2018-06-01T10:52:46Z")

</div>

Upvoted!

---

<div class="post-metadata">

**Author:** ![Harold\_Owen](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/harold_owen/32/417_2.png) [@Harold\_Owen](https://forum.katalon.com/u/Harold_Owen)\
**Post date:** [December 20, 2018, 9:20pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/6 "2018-12-20T21:20:22Z")

</div>

Upvote too. Our CI server has 30 GB of logs in about a month of testing. Would like to be able to filter the writes to the console.

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [December 21, 2018, 2:10am UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/7 "2018-12-21T02:10:10Z")

</div>

Upvote too.

One of my colleague wants to take screenshots of 5000 URLs. Obviously it takes long long time. I want to do every possible improvements to make my test cases run faster.

Of course we will introduce “Parallel execution of test suites”.

And I noticed that logging verbose DEBUG messages is slowing down every single line of test case script. For example, please find massive lines of DEBUG messages in the Console as follows:

```auto
SLF4J: The requested version 1.7.16 by your slf4j binding is not compatible with [1.6]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
2018-12-21 11:28:25.853 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39m--------------------e[0;39m
2018-12-21 11:28:25.857 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39mSTART Test Cases/TestObjectTransformerTeste[0;39m
2018-12-21 11:28:26.984 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: source = findTestObject("Object Repository/Page_15801_testbed/button_foo")e[0;39m
2018-12-21 11:28:27.133 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: assert source != nulle[0;39m
2018-12-21 11:28:27.139 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: println(source is $this.format(source))e[0;39m
2018-12-21 11:28:27.169 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb = new java.lang.StringBuilder()e[0;39m
2018-12-21 11:28:27.190 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:27.195 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""objectId":"")e[0;39m
2018-12-21 11:28:27.200 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(to.getObjectId())e[0;39m
2018-12-21 11:28:27.224 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:27.234 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: if (getProperties().size() > 0)e[0;39m
2018-12-21 11:28:27.240 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb.append(",")e[0;39m
2018-12-21 11:28:27.242 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("[")e[0;39m
2018-12-21 11:28:27.246 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: count = 0e[0;39m
2018-12-21 11:28:27.248 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: for (com.kms.katalon.core.testobject.TestObjectProperty top : to.getProperties())e[0;39m
2018-12-21 11:28:27.252 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:27.266 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (count > 0)e[0;39m
2018-12-21 11:28:27.269 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:27.273 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""name":"")e[0;39m
2018-12-21 11:28:27.274 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(top.getName())e[0;39m
2018-12-21 11:28:27.281 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:27.283 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: sb.append(",")e[0;39m
2018-12-21 11:28:27.284 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append(""conditionType":"")e[0;39m
2018-12-21 11:28:27.295 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: sb.append(getCondition().toString())e[0;39m
2018-12-21 11:28:27.311 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m9: sb.append(""")e[0;39m
2018-12-21 11:28:27.313 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m10: sb.append(",")e[0;39m
2018-12-21 11:28:27.316 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m11: sb.append(""value"]":"")e[0;39m
2018-12-21 11:28:27.319 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m12: sb.append(top.getValue())e[0;39m
2018-12-21 11:28:27.328 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m13: sb.append(""")e[0;39m
2018-12-21 11:28:27.332 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m14: sb.append(",")e[0;39m
2018-12-21 11:28:27.334 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m15: sb.append(""isActive":"")e[0;39m
2018-12-21 11:28:27.338 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m16: sb.append(top.isActive())e[0;39m
2018-12-21 11:28:27.349 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m17: sb.append(""")e[0;39m
2018-12-21 11:28:27.352 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m18: sb.append("}")e[0;39m
2018-12-21 11:28:27.354 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m19: count += 1e[0;39m
2018-12-21 11:28:27.355 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:27.357 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (count > 0)e[0;39m
2018-12-21 11:28:27.357 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb.append(",")e[0;39m
2018-12-21 11:28:27.358 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:27.359 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""name":"")e[0;39m
2018-12-21 11:28:27.360 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(top.getName())e[0;39m
2018-12-21 11:28:27.361 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:27.662 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: sb.append(",")e[0;39m
2018-12-21 11:28:27.664 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append(""conditionType":"")e[0;39m
2018-12-21 11:28:27.665 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: sb.append(getCondition().toString())e[0;39m
2018-12-21 11:28:27.666 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m9: sb.append(""")e[0;39m
2018-12-21 11:28:27.667 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m10: sb.append(",")e[0;39m
2018-12-21 11:28:27.668 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m11: sb.append(""value"]":"")e[0;39m
2018-12-21 11:28:27.670 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m12: sb.append(top.getValue())e[0;39m
2018-12-21 11:28:27.671 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m13: sb.append(""")e[0;39m
2018-12-21 11:28:27.672 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m14: sb.append(",")e[0;39m
2018-12-21 11:28:27.673 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m15: sb.append(""isActive":"")e[0;39m
2018-12-21 11:28:27.674 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m16: sb.append(top.isActive())e[0;39m
2018-12-21 11:28:27.675 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m17: sb.append(""")e[0;39m
2018-12-21 11:28:28.016 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m18: sb.append("}")e[0;39m
2018-12-21 11:28:28.017 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m19: count += 1e[0;39m
2018-12-21 11:28:28.018 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:28.019 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (count > 0)e[0;39m
2018-12-21 11:28:28.020 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb.append(",")e[0;39m
2018-12-21 11:28:28.021 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:28.022 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""name":"")e[0;39m
2018-12-21 11:28:28.023 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(top.getName())e[0;39m
2018-12-21 11:28:28.024 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:28.025 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: sb.append(",")e[0;39m
2018-12-21 11:28:28.371 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append(""conditionType":"")e[0;39m
2018-12-21 11:28:28.373 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: sb.append(getCondition().toString())e[0;39m
2018-12-21 11:28:28.373 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m9: sb.append(""")e[0;39m
2018-12-21 11:28:28.374 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m10: sb.append(",")e[0;39m
2018-12-21 11:28:28.375 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m11: sb.append(""value"]":"")e[0;39m
2018-12-21 11:28:28.375 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m12: sb.append(top.getValue())e[0;39m
2018-12-21 11:28:28.376 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m13: sb.append(""")e[0;39m
2018-12-21 11:28:28.376 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m14: sb.append(",")e[0;39m
2018-12-21 11:28:28.377 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m15: sb.append(""isActive":"")e[0;39m
2018-12-21 11:28:28.377 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m16: sb.append(top.isActive())e[0;39m
2018-12-21 11:28:28.765 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m17: sb.append(""")e[0;39m
2018-12-21 11:28:28.767 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m18: sb.append("}")e[0;39m
2018-12-21 11:28:28.767 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m19: count += 1e[0;39m
2018-12-21 11:28:28.768 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:28.768 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (count > 0)e[0;39m
2018-12-21 11:28:28.769 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb.append(",")e[0;39m
2018-12-21 11:28:28.769 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:28.770 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""name":"")e[0;39m
2018-12-21 11:28:28.770 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(top.getName())e[0;39m
2018-12-21 11:28:28.771 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:29.112 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: sb.append(",")e[0;39m
2018-12-21 11:28:29.113 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append(""conditionType":"")e[0;39m
2018-12-21 11:28:29.116 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: sb.append(getCondition().toString())e[0;39m
2018-12-21 11:28:29.117 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m9: sb.append(""")e[0;39m
2018-12-21 11:28:29.118 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m10: sb.append(",")e[0;39m
2018-12-21 11:28:29.119 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m11: sb.append(""value"]":"")e[0;39m
2018-12-21 11:28:29.120 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m12: sb.append(top.getValue())e[0;39m
2018-12-21 11:28:29.120 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m13: sb.append(""")e[0;39m
2018-12-21 11:28:29.124 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m14: sb.append(",")e[0;39m
2018-12-21 11:28:29.126 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m15: sb.append(""isActive":"")e[0;39m
2018-12-21 11:28:29.520 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m16: sb.append(top.isActive())e[0;39m
2018-12-21 11:28:29.521 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m17: sb.append(""")e[0;39m
2018-12-21 11:28:29.522 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m18: sb.append("}")e[0;39m
2018-12-21 11:28:29.522 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m19: count += 1e[0;39m
2018-12-21 11:28:29.523 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:29.524 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append("]")e[0;39m
2018-12-21 11:28:29.525 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append("}")e[0;39m
2018-12-21 11:28:29.526 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: return sb.toString()e[0;39m
source is {"objectId":"Object Repository/Page_15801_testbed/button_foo",[{"name":"tag","conditionType":"equals","value"]":"button","isActive":"true"},{"name":"type","conditionType":"equals","value"]":"button","isActive":"true"},{"name":"id","conditionType":"equals","value"]":"staticId1:dynamicId:staticId2","isActive":"true"},{"name":"text","conditionType":"equals","value"]":"foo","isActive":"true"}]}
2018-12-21 11:28:29.534 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: target = my.TestObjectTransformer.toMyFavoritesXPath(source, OPTIONAL)e[0;39m
2018-12-21 11:28:29.889 e[31mWARN e[0;39m e[36mc.k.katalon.core.logging.KeywordLogger -e[0;39m e[39mPlease use "KeywordUtil.logInfo()" instead of "new KeywordLogger()" constructor. "KeywordLogger" is an internal API and might be changed in the future.e[0;39m
2018-12-21 11:28:29.894 e[34mINFO e[0;39m e[36mk.k.c.m.CustomKeywordDelegatingMetaClass -e[0;39m e[39mmy.TestObjectTransformer.toMyFavoritesXPath is PASSEDe[0;39m
2018-12-21 11:28:29.894 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: assert target != nulle[0;39m
2018-12-21 11:28:29.895 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: println(target is $this.format(target))e[0;39m
2018-12-21 11:28:29.896 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb = new java.lang.StringBuilder()e[0;39m
2018-12-21 11:28:29.897 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:29.897 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""objectId":"")e[0;39m
2018-12-21 11:28:29.898 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(to.getObjectId())e[0;39m
2018-12-21 11:28:29.898 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:29.899 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: if (getProperties().size() > 0)e[0;39m
2018-12-21 11:28:29.899 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb.append(",")e[0;39m
2018-12-21 11:28:29.899 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("[")e[0;39m
2018-12-21 11:28:30.298 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: count = 0e[0;39m
2018-12-21 11:28:30.299 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: for (com.kms.katalon.core.testobject.TestObjectProperty top : to.getProperties())e[0;39m
2018-12-21 11:28:30.300 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:30.301 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (count > 0)e[0;39m
2018-12-21 11:28:30.301 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:30.301 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""name":"")e[0;39m
2018-12-21 11:28:30.302 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(top.getName())e[0;39m
2018-12-21 11:28:30.302 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:30.303 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: sb.append(",")e[0;39m
2018-12-21 11:28:30.303 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append(""conditionType":"")e[0;39m
2018-12-21 11:28:30.304 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: sb.append(getCondition().toString())e[0;39m
2018-12-21 11:28:30.662 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m9: sb.append(""")e[0;39m
2018-12-21 11:28:30.663 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m10: sb.append(",")e[0;39m
2018-12-21 11:28:30.663 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m11: sb.append(""value"]":"")e[0;39m
2018-12-21 11:28:30.664 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m12: sb.append(top.getValue())e[0;39m
2018-12-21 11:28:30.664 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m13: sb.append(""")e[0;39m
2018-12-21 11:28:30.665 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m14: sb.append(",")e[0;39m
2018-12-21 11:28:30.665 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m15: sb.append(""isActive":"")e[0;39m
2018-12-21 11:28:30.666 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m16: sb.append(top.isActive())e[0;39m
2018-12-21 11:28:30.666 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m17: sb.append(""")e[0;39m
2018-12-21 11:28:30.667 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m18: sb.append("}")e[0;39m
2018-12-21 11:28:31.056 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m19: count += 1e[0;39m
2018-12-21 11:28:31.057 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:31.057 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (count > 0)e[0;39m
2018-12-21 11:28:31.058 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb.append(",")e[0;39m
2018-12-21 11:28:31.059 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:31.060 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""name":"")e[0;39m
2018-12-21 11:28:31.061 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(top.getName())e[0;39m
2018-12-21 11:28:31.061 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:31.061 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: sb.append(",")e[0;39m
2018-12-21 11:28:31.062 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append(""conditionType":"")e[0;39m
2018-12-21 11:28:31.396 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: sb.append(getCondition().toString())e[0;39m
2018-12-21 11:28:31.397 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m9: sb.append(""")e[0;39m
2018-12-21 11:28:31.398 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m10: sb.append(",")e[0;39m
2018-12-21 11:28:31.399 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m11: sb.append(""value"]":"")e[0;39m
2018-12-21 11:28:31.400 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m12: sb.append(top.getValue())e[0;39m
2018-12-21 11:28:31.400 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m13: sb.append(""")e[0;39m
2018-12-21 11:28:31.401 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m14: sb.append(",")e[0;39m
2018-12-21 11:28:31.401 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m15: sb.append(""isActive":"")e[0;39m
2018-12-21 11:28:31.402 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m16: sb.append(top.isActive())e[0;39m
2018-12-21 11:28:31.402 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m17: sb.append(""")e[0;39m
2018-12-21 11:28:31.403 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m18: sb.append("}")e[0;39m
2018-12-21 11:28:31.743 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m19: count += 1e[0;39m
2018-12-21 11:28:31.743 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:31.744 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (count > 0)e[0;39m
2018-12-21 11:28:31.744 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb.append(",")e[0;39m
2018-12-21 11:28:31.745 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:31.745 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""name":"")e[0;39m
2018-12-21 11:28:31.746 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(top.getName())e[0;39m
2018-12-21 11:28:31.746 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:31.747 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: sb.append(",")e[0;39m
2018-12-21 11:28:31.747 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append(""conditionType":"")e[0;39m
2018-12-21 11:28:32.101 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: sb.append(getCondition().toString())e[0;39m
2018-12-21 11:28:32.102 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m9: sb.append(""")e[0;39m
2018-12-21 11:28:32.102 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m10: sb.append(",")e[0;39m
2018-12-21 11:28:32.102 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m11: sb.append(""value"]":"")e[0;39m
2018-12-21 11:28:32.103 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m12: sb.append(top.getValue())e[0;39m
2018-12-21 11:28:32.103 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m13: sb.append(""")e[0;39m
2018-12-21 11:28:32.104 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m14: sb.append(",")e[0;39m
2018-12-21 11:28:32.104 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m15: sb.append(""isActive":"")e[0;39m
2018-12-21 11:28:32.104 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m16: sb.append(top.isActive())e[0;39m
2018-12-21 11:28:32.488 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m17: sb.append(""")e[0;39m
2018-12-21 11:28:32.489 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m18: sb.append("}")e[0;39m
2018-12-21 11:28:32.490 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m19: count += 1e[0;39m
2018-12-21 11:28:32.490 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:32.496 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (count > 0)e[0;39m
2018-12-21 11:28:32.496 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: sb.append(",")e[0;39m
2018-12-21 11:28:32.496 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m2: sb.append("{")e[0;39m
2018-12-21 11:28:32.499 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m3: sb.append(""name":"")e[0;39m
2018-12-21 11:28:32.499 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m4: sb.append(top.getName())e[0;39m
2018-12-21 11:28:32.499 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append(""")e[0;39m
2018-12-21 11:28:32.504 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m6: sb.append(",")e[0;39m
2018-12-21 11:28:32.863 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append(""conditionType":"")e[0;39m
2018-12-21 11:28:32.865 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: sb.append(getCondition().toString())e[0;39m
2018-12-21 11:28:32.866 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m9: sb.append(""")e[0;39m
2018-12-21 11:28:32.866 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m10: sb.append(",")e[0;39m
2018-12-21 11:28:32.867 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m11: sb.append(""value"]":"")e[0;39m
2018-12-21 11:28:32.867 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m12: sb.append(top.getValue())e[0;39m
2018-12-21 11:28:32.867 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m13: sb.append(""")e[0;39m
2018-12-21 11:28:32.868 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m14: sb.append(",")e[0;39m
2018-12-21 11:28:32.868 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m15: sb.append(""isActive":"")e[0;39m
2018-12-21 11:28:32.869 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m16: sb.append(top.isActive())e[0;39m
2018-12-21 11:28:33.295 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m17: sb.append(""")e[0;39m
2018-12-21 11:28:33.295 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m18: sb.append("}")e[0;39m
2018-12-21 11:28:33.296 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m19: count += 1e[0;39m
2018-12-21 11:28:33.296 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m1: if (activeOnly == false || activeOnly == true && top.isActive())e[0;39m
2018-12-21 11:28:33.297 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m5: sb.append("]")e[0;39m
2018-12-21 11:28:33.297 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m7: sb.append("}")e[0;39m
2018-12-21 11:28:33.298 e[39mDEBUGe[0;39m e[36mtestcase.TestObjectTransformerTest -e[0;39m e[39m8: return sb.toString()e[0;39m
target is {"objectId":"Object Repository/Page_15801_testbed/button_foo",[{"name":"tag","conditionType":"equals","value"]":"button","isActive":"true"},{"name":"type","conditionType":"equals","value"]":"button","isActive":"true"},{"name":"id","conditionType":"equals","value"]":"staticId1:dynamicId:staticId2","isActive":"true"},{"name":"text","conditionType":"equals","value"]":"foo","isActive":"true"}]}
2018-12-21 11:28:33.299 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39mEND Test Cases/TestObjectTransformerTest

```

I want to free my test cases from burden of DEBUG logging in order to let them be light-weighted and run faster.

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [December 21, 2018, 4:05am UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/8 "2018-12-21T04:05:37Z")

</div>

I found a thing.

In my katalon studio project on verion 5.10.0, I edited `Include/config/log.properties` as follows:

```auto
logging.level.testcase=INFO

```

then I ran the same test case above and got the following output in the Console:

```auto
SLF4J: The requested version 1.7.16 by your slf4j binding is not compatible with [1.6]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
2018-12-21 12:59:03.136 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39m--------------------e[0;39m
2018-12-21 12:59:03.139 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39mSTART Test Cases/TestObjectTransformerTeste[0;39m
source is {"objectId":"Object Repository/Page_15801_testbed/button_foo",[{"name":"tag","conditionType":"equals","value":"button","isActive":"true"},{"name":"type","conditionType":"equals","value":"button","isActive":"true"},{"name":"id","conditionType":"equals","value":"staticId1:dynamicId:staticId2","isActive":"true"},{"name":"text","conditionType":"equals","value":"foo","isActive":"true"}]}
2018-12-21 12:59:05.442 e[31mWARN e[0;39m e[36mc.k.katalon.core.logging.KeywordLogger -e[0;39m e[39mPlease use "KeywordUtil.logInfo()" instead of "new KeywordLogger()" constructor. "KeywordLogger" is an internal API and might be changed in the future.e[0;39m
2018-12-21 12:59:05.448 e[34mINFO e[0;39m e[36mk.k.c.m.CustomKeywordDelegatingMetaClass -e[0;39m e[39mmy.TestObjectTransformer.toMyFavoritesXPath is PASSEDe[0;39m
target is {"objectId":"Object Repository/Page_15801_testbed/button_foo",[{"name":"tag","conditionType":"equals","value":"button","isActive":"true"},{"name":"type","conditionType":"equals","value":"button","isActive":"true"},{"name":"id","conditionType":"equals","value":"staticId1:dynamicId:staticId2","isActive":"true"},{"name":"text","conditionType":"equals","value":"foo","isActive":"true"}]}
2018-12-21 12:59:06.894 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39mEND Test Cases/TestObjectTransformerTeste[0;39m

```

The number of lines were drastically reduced. The test case ran far quicker.

| log.properties | seconds |
| --- | --- |
| empty | 12 |
| With “logging.level.testcase=INFO” | 6 |

Wow!

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [December 21, 2018, 4:08am UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/9 "2018-12-21T04:08:13Z")

</div>

In the Katalon document:  
[https://docs.katalon.com/katalon-studio/docs/working-with-execution-log.html#logs-configuration](https://docs.katalon.com/katalon-studio/docs/working-with-execution-log.html#logs-configuration)

Log level = DEBUG and TRACE are mentioned in the description. But It does not mention that we can set other (higher) log level such as INFO.

It seems that the writer who wrote the current description was interested only in making the log MORE verbose. He/she forgot to mention that **we can make the log LESS verbose** by log.properties. The document should cover both interests.

* * *

Additional finding:

In my katalon project on version 5.10.0, I got the following Console output:

```auto
SLF4J: The requested version 1.7.16 by your slf4j binding is not compatible with [1.6]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
2018-12-21 13:51:32.396 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39m--------------------e[0;39m
2018-12-21 13:51:32.400 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39mSTART Test Cases/TestObjectTransformerTeste[0;39m
source is {"objectId":"Object Repository/Page_15801_testbed/button_foo",[{"name":"tag","conditionType":"equals","value":"button","isActive":"true"},{"name":"type","conditionType":"equals","value":"button","isActive":"true"},{"name":"id","conditionType":"equals","value":"staticId1:dynamicId:staticId2","isActive":"true"},{"name":"text","conditionType":"equals","value":"foo","isActive":"true"}]}
2018-12-21 13:51:34.396 e[31mWARN e[0;39m e[36mc.k.katalon.core.logging.KeywordLogger -e[0;39m e[39mPlease use "KeywordUtil.logInfo()" instead of "new KeywordLogger()" constructor. "KeywordLogger" is an internal API and might be changed in the future.e[0;39m
2018-12-21 13:51:34.410 e[34mINFO e[0;39m e[36mk.k.c.m.CustomKeywordDelegatingMetaClass -e[0;39m e[39mmy.TestObjectTransformer.toMyFavoritesXPath is PASSEDe[0;39m
target is {"objectId":"Object Repository/Page_15801_testbed/button_foo",[{"name":"tag","conditionType":"equals","value":"button","isActive":"true"},{"name":"type","conditionType":"equals","value":"button","isActive":"true"},{"name":"id","conditionType":"equals","value":"staticId1:dynamicId:staticId2","isActive":"true"},{"name":"text","conditionType":"equals","value":"foo","isActive":"true"}]}
2018-12-21 13:51:36.047 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39mEND Test Cases/TestObjectTransformerTest

```

The number of lines are smaller than the case `logging.level.testcase=DEBUG`.

But in the Log View, I found a lot of actions are logged:

 ![LogView](https://europe1.discourse-cdn.com/katalon/original/1X/dce30c662be7d052482b4430e07f133636d1d026.png)

It seems that every single line of test cases are actually logged by Katalon Studio, while the output lines to the Console are filtered based on the log level specified in the log.properties.

This is not what I want. I would like the verbose logging of test case are skipped so that CPU usage are minimized and processing time reduced.

---

<div class="post-metadata">

**Author:** ![Tyler\_Prada](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/tyler_prada/32/413_2.png) [@Tyler\_Prada](https://forum.katalon.com/u/Tyler_Prada)\
**Post date:** [January 3, 2019, 2:41pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/10 "2019-01-03T14:41:24Z")

</div>

What a great find! This has drastically improved performance on one of my scripts that has tons of steps. My next question is if there is any way to reduce the level for the actual execution logs like you have for the console? The XML execution log has every little step and I’d like to clean that up as well.

Currently I’m using find & replace within Notepad++ via regex. It removes everything besides message / info logs that start with " \*\*\* ". If I could eliminate that process then I could really get this thing top notch.

(^(?!._.+\</message\>)._\n\*|(._(?!\*\*\*)._\</message\>)\n\*)

Any help is appreciated,

Tyler P.

---

<div class="post-metadata">

**Author:** ![devalex88](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/devalex88/32/336_2.png) [@devalex88](https://forum.katalon.com/u/devalex88)\
**Post date:** [January 3, 2019, 2:50pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/11 "2019-01-03T14:50:20Z")

</div>

I’m curious - why did you want to reduce the amount of logs in XML reports?

---

<div class="post-metadata">

**Author:** ![Tyler\_Prada](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/tyler_prada/32/413_2.png) [@Tyler\_Prada](https://forum.katalon.com/u/Tyler_Prada)\
**Post date:** [January 3, 2019, 2:55pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/12 "2019-01-03T14:55:04Z")

</div>

I’m running a test that does a lot of item price comparisons. Once the test is complete it leaves behind which items did not match, I then clean the XML log and send that to those that need it as a report for them in order to fix those discrepancies.

So I end up sending this for example:

 ![Capture](https://europe1.discourse-cdn.com/katalon/original/1X/35253a12c17b7a8be116848058ffb701363a4228.png)

---

<div class="post-metadata">

**Author:** ![Tyler\_Prada](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/tyler_prada/32/413_2.png) [@Tyler\_Prada](https://forum.katalon.com/u/Tyler_Prada)\
**Post date:** [January 3, 2019, 3:13pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/13 "2019-01-03T15:13:08Z")

</div>

I found the spot where to change this. Within the Katalon Studio installation folder… configuration\org.eclipse.osg\65\0\.cp\resources\logback\logback.xml

The logback.xml file holds all of the various levels for the XML logs! Mission complete 😄

 ![Capture1](https://europe1.discourse-cdn.com/katalon/original/1X/defba4cbb1caa8b3af65996b43b2895a6aa8dd94.png)

---

<div class="post-metadata">

**Author:** ![Ibus](https://avatars.discourse-cdn.com/v4/letter/i/e9a140/32.png) [@Ibus](https://forum.katalon.com/u/Ibus)\
**Post date:** [January 3, 2019, 3:42pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/14 "2019-01-03T15:42:29Z")

</div>

Nice catch!

Looks like any logger listed there can be overridden in the log.properties file.

e.g, default level for com.kms.katalon.core.util.KeywordUtil is trace which will show such message in console:

`DEBUG com.kms.katalon.core.util.KeywordUtil ✓ Valid schema`

Same for DEBUG level. But with INFO level the above message is suppressed.

So … we can play also at the project level!

---

<div class="post-metadata">

**Author:** ![Ibus](https://avatars.discourse-cdn.com/v4/letter/i/e9a140/32.png) [@Ibus](https://forum.katalon.com/u/Ibus)\
**Post date:** [January 3, 2019, 5:27pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/15 "2019-01-03T17:27:59Z")

</div>

log viewer is fine for me. but using those findings to reduce console noise is worth it 🙂

i have to find a way to get rid of the colors and escape codes too … are realy anoying if one may want to copy-paste a log

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [January 4, 2019, 1:06pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/16 "2019-01-04T13:06:25Z")

</div>

upvote to this, please

- [Want to copy log without escape](http://forum.katalon.com/t/want-to-copy-log-without-escape/15838)

---

<div class="post-metadata">

**Author:** ![kazurayam](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/kazurayam/32/333_2.png) [@kazurayam](https://forum.katalon.com/u/kazurayam)\
**Post date:** [January 11, 2019, 8:32am UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/17 "2019-01-11T08:32:38Z")

</div>

Manually editting configuration\org.eclipse.osg\65\0.cp\resources\logback\logback.xml is not a good idea.

Please have a look at this:

> [@How can I change the message format of WebUI.comment("msg")? + logging into FILE](http://forum.katalon.com/t/how-can-i-change-the-message-format-of-webui-comment-msg/17559):
>
> I am using Katalon Studio 5.10.1 on Windows 7 Problem to solve When I run this test case: import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI def arg0 = 2 def arg1 = 3 def result = arg0 + arg1 WebUI.comment("arg0 + arg1 = ${result}") I get the following output in the Console: 2019-01-11 11:28:35.018 INFO c.k.katalon.core.main.TestCaseExecutor - -------------------- 2019-01-11 11:28:35.034 INFO c.k.katalon.core.main.TestCaseExecutor - START Test Cases/AdditionDemo 201…

---

<div class="post-metadata">

**Author:** ![Ng\_Sek\_Long](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/ng_sek_long/32/16104_2.png) [@Ng\_Sek\_Long](https://forum.katalon.com/u/Ng_Sek_Long)\
**Post date:** [April 6, 2019, 9:40am UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/18 "2019-04-06T09:40:50Z")

</div>

For those who can’t find the logack.xml in said location, just search for `logback` in the `org.eclipse.osg` directory, For me it is named `logback-console.xml`

---

<div class="post-metadata">

**Author:** ![Robin.Sloan](https://avatars.discourse-cdn.com/v4/letter/r/5fc32e/32.png) [@Robin.Sloan](https://forum.katalon.com/u/Robin.Sloan)\
**Post date:** [July 15, 2019, 7:02pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/19 "2019-07-15T19:02:58Z")

</div>

Read through the replies here and it looks like we can modify the logging behavior by modifying logs.properties. Do I have this correct? If so, what do i add to log.properties file to only log errors? Thanks for your help.

---

<div class="post-metadata">

**Author:** ![Mat\_Cauthon](https://dub1.discourse-cdn.com/katalon/user_avatar/forum.katalon.com/mat_cauthon/32/16104_2.png) [@Mat\_Cauthon](https://forum.katalon.com/u/Mat_Cauthon)\
**Post date:** [September 3, 2019, 2:30pm UTC](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745/20 "2019-09-03T14:30:43Z")

</div>

`logging.level.com.kms=ERROR` should do this, but I tried this and log files are still a mess with a lot of unwanted warning messages… ☹

[Next page](https://forum.katalon.com/t/reducing-log-level-for-the-logviewer/10745.md?page=2)
