Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
iamsalman
Contributor II
Contributor II

Qlik Sense Performance Logging-Warning Level

I want to automate Qlik Sense Engine Logging to Warning Level by using a script. I found some related documentations here:

https://community.qlik.com/t5/Knowledge/How-to-enable-Qlik-Sense-QIX-performance-logging-and-use-the...

https://community.qlik.com/t5/Knowledge/How-to-enable-QlikView-QIX-performance-logging/ta-p/1716038

https://community.qlik.com/t5/Knowledge/How-to-enable-Qlik-Sense-Desktop-debug-level-logging/ta-p/17...

 

Following the above guides, I put the following lines in C:\ProgramData\Qlik\Sense\Engine\Settings.ini

[Settings 7]
SystemLogVerbosity=2
WarningProcessTimeMs=30000
ErrorProcessTimeMs=60000
WarningPeakMemory= 1073741824
ErrorPeakMemory= 2147483648

But it does not work even after I restart Proxy service and/or engine service. Is there some way I can automate this configuration? Doing manually using GUI is not an option!

Labels (2)
1 Solution

Accepted Solutions
iamsalman
Contributor II
Contributor II
Author

For anyone trying to automate this step in future, here is how I did it in the end (Powershell script):

$currentTime = $(Get-Date -Format "yyyy-MM-ddTHH:mm")
$engineSettings = '"settings":{"auditActivityLogVerbosity":1, "serviceLogVerbosity":3, "systemLogVerbosity":3, "performanceLogVerbosity":3, "qixPerformanceLogVerbosity":0, "auditLogVerbosity":0, "sessionLogVerbosity":3, "trafficLogVerbosity":0, "sseLogVerbosity":3}'
$engineLogsBody = '{' + $engineSettings + ',"modifiedDate":"' + $currentTime + '"}'
$qlikEngine = Get-QlikEngine
Invoke-QlikPut -path "/qrs/engineservice/$($qlikEngine.id)" -body $engineLogsBody -ContentType 'application/json'

 

View solution in original post

3 Replies
Levi_Turner
Employee
Employee

I'd want to first ask, why don't you believe it is working? Things to confirm:

  • QMC > Engines > QIX Performance Logging has been to set to WARN?
    • If you change this, you will need to restart the Engine
  • There is a blank line at the end of the Settings.ini file?
    • If you change this, you will need to restart the Engine
  • You have an app which makes a request which either takes more than 30 seconds / 1GB to process?
    • The 30 second criteria should be able to simulate easily with dummy data.
  • Nothing is written to C:\ProgramData\Qlik\Sense\Log\Engine\Trace\<serverName>_QixPerformance_Engine.txt ?

 

iamsalman
Contributor II
Contributor II
Author

As I mentioned in my question, using the GUI, traversing to QMC > Engines > Logging and changing the log level by UI interaction is not what I am looking for. I want to just update the settings.ini file and I expect those configuration changes to reflect in the GUI.

After updating the ini file (and confirming there is a new line character in the end), restart engine service, I reopen the QMC > Engines > Logging but I see no change there. It is still set to default "Info" level logging. Attached screenshot:qmc_engine_logging.PNG

iamsalman
Contributor II
Contributor II
Author

For anyone trying to automate this step in future, here is how I did it in the end (Powershell script):

$currentTime = $(Get-Date -Format "yyyy-MM-ddTHH:mm")
$engineSettings = '"settings":{"auditActivityLogVerbosity":1, "serviceLogVerbosity":3, "systemLogVerbosity":3, "performanceLogVerbosity":3, "qixPerformanceLogVerbosity":0, "auditLogVerbosity":0, "sessionLogVerbosity":3, "trafficLogVerbosity":0, "sseLogVerbosity":3}'
$engineLogsBody = '{' + $engineSettings + ',"modifiedDate":"' + $currentTime + '"}'
$qlikEngine = Get-QlikEngine
Invoke-QlikPut -path "/qrs/engineservice/$($qlikEngine.id)" -body $engineLogsBody -ContentType 'application/json'