SmartObject runtime logging

You can enable detailed logging for SmartObjects to help with SmartObject runtime debugging. To set up runtime logging for SmartObjects, edit the file K2HostServer.exe.Config file located in "%PROGRAMFILES%\K2\Host Server\Bin". Then configure the <logging> section for the log files you want to output.

By default, all the log files are disabled. Change the log="no" setting to log="yes" for each log file you want to create. Restart the K2 service to pick up the configuration changes, execute the SmartObject method and then review the log files' output. By default, the log files are written to "%PROGRAMFILES%\K2\ServiceBroker\logs"

To turn on the detailed logging, follow the steps below:

This topic describes logging defaults. These defaults are the recommended level of logging. You should adjust default logging if you understand the impact of doing so, and typically only for the duration of the troubleshooting task. Contact K2 Product Support services if you need assistance with configuring logging or interpreting log output.
  1. Browse to and open the following file in a text editor: "%ProgramFiles%\K2\Host Server\Bin\K2HostServer.exe.config" then find the <logging> section as in the code block below.
  2. By default, all the log files are disabled. Change the log="no" setting to log="yes" for each log file you want to create:
    Copy

    Set log="yes"

    <logging>
      <serviceauthentication log="no" path="C:\Program Files\K2\ServiceBroker\Logs\serviceauth.log" overwrite="no" />
      <timestamping log="no" path="C:\Program Files\K2\ServiceBroker\Logs\timestamp.log" overwrite="no" />
      <brokerpackagein log="no" path="C:\Program Files\K2\ServiceBroker\Logs\brokerpackagein.log" overwrite="no" />
      <brokerpackageout log="no" path="C:\Program Files\K2\ServiceBroker\Logs\brokerpackageout.log" overwrite="no" />
      <servicepackagein log="no" path="C:\Program Files\K2\ServiceBroker\Logs\servicepackagein.log" overwrite="no" />
      <servicepackageout log="no" path="C:\Program Files\K2\ServiceBroker\Logs\servicepackageout.log" overwrite="no" />
    </logging>
    If log="yes", the overwrite property sets whether the log file is overwritten (overwrite="yes") or appended (overwrite="no") every time a SmartObject is executed. This might produce unexpected results, for example, when a complex SmartObject executes multiple methods, only the last one is logged. We recommend leaving overwrite set to no.
    There are six different log files:
    File NameLogged Information
    serviceauth.logShows the security credentials used when the service was executed. Check the current thread user to see which user account executed the service broker code.
    timestamp.log
    brokerpackagein.logLogs the SmartObject that called the broker and the method of the SmartObject that uses the Broker. Use this information to see which SmartObject and method were executed, and when.
    brokerpackageout.logThis data can be useful when you need to troubleshoot why only some and not all the expected records were returned to the UI. For example, if the brokerpackage log reports the expected and correct number of records, perhaps the UI is filtering out data after the broker returned the right number of records.
    servicepackagein.logRepresents the Service Instance configuration. The service objects for the service instance called, with their methods, properties, and the mappings that define how the provider types mapped to service object types. When troubleshooting, one of the most useful values is the <serviceauthentication> section, where you can see the user account context that used to query the provider.
    servicepackageout.logIs the raw data returned by the Service Instance. This information can be useful when the data shown in the UI does not match the data you were expecting. Check this log file to see if the expected data was returned to the SmartObject, in which case the problem is likely on the UI side.
  3. Save your changes to the config file.
  4. Restart the K2 service to pick up the configuration changes.
  5. Execute the SmartObject method and then review the log files' output. By default, the log files are written to "%PROGRAMFILES%\K2\ServiceBroker\logs" (the path attribute for each setting).