.Net EMA API Log

I am using .net EMA API to load the Instrument Pricing in Azure Function and trying to capture the underlying logs from the API. I tried using Logger section in the config file but it is not capturing events at the RIC level, I am able to capture high level events.

Best Answer

  • Jirapongse
    Jirapongse admin
    Answer ✓

    @harish.lalwani

    Thank you for reaching out to us.

    I checked the EMA .NET configuartion guide and found that it supports logging with the following levels.

    Possible values are:
    • LoggerSeverity::Verbose (0)
    • LoggerSeverity::Success (2)
    • LoggerSeverity::Warning (3)
    • LoggerSeverity::Error (4)
    • LoggerSeverity::NoLogMsg (5)

    The Verbose level doesn't capture events at the RIC level. If you would like to see the raw messages, you can use the XmlTraceToStdout or XmlTraceToFile configuration.

            <Consumer>         
                <Name value="Consumer_1"/>
                <Channel value="Channel_1"/>
                <Logger value="Logger_1"/>
                <Dictionary value="Dictionary_2"/>
                <XmlTraceToStdout value="1"/>
            </Consumer>

    The trace messages look like this:

    <!-- Incoming Reactor message -->
    <!-- Rssl Channel
        scktChannel: 127.0.0.1:14002
        connected: True
        state: ACTIVE
        connectionType: SOCKET
        clientIP: 
        clientHostname: 
        pingTimeout: 30
        majorVersion: 14
        minorVersion: 1
        protocolType: RWF
        userSpecObject: LSEG.Ema.Access.ChannelInfo
     -->
    <!-- 7/30/2024 12:57:56 PM -->


    <!-- rwfMajorVer="14" rwfMinorVer="1" -->
    <UPDATE domainType="MARKET_PRICE" streamId="3" containerType="FIELD_LIST" flags="0x90 (HAS_SEQ_NUM|DO_NOT_CONFLATE)" updateType="0" seqNum="63998" dataSize="13">
            <dataBody>
                    <fieldList flags="0x08 (HAS_STANDARD_DATA)">
                            <fieldEntry fieldId="3275" data="0C6D"/>
                            <fieldEntry fieldId="3284" data="0C4A"/>
                    </fieldList>
            </dataBody>
    </UPDATE>

    However, enbling XML trace will impact the performance of the application.

Answers

  • Thanks @Jirapongse for your response.

    If I enable I get following error logged in the file XmlTraceToFile .If I remove this I am at least able to capture other level of logs.

    Severity: Error Text: Unknown Consumer entry element: XmlTraceToFile in Consumer_1


    Also can you share the .net configuration guide link.


  • @harish.lalwani

    The configuration looks like this:

        <ConsumerList>
            <Consumer>       
                <Name value="Consumer_1"/>
                <Channel value="Channel_1"/>
                <Logger value="Logger_1"/>
                <Dictionary value="Dictionary_2"/>
                <XmlTraceToFile value="1"/>
            </Consumer>

    I am using RTSDK-2.2.0.L1.CSharp.rrg.

    You can check all available configurations in the EMACSharp_ConfigGuide.pdf file in the package.

  • Thank you @Jirapongse

    In .net version the property name is changed to LoggerType

    • LoggerType::File: The Enterprise Message API logs to

    the file specified in the parameter FileName.

    • LoggerType::Stdout: The Enterprise Message API logs to

    stdout.