Is it possible for OpenFin to store logs in a secure database and what is the process for accessing logs located at %LocalAppData%\openfin\apps\<app>\app.log

System Information

Here are the details of the system setup:

  • OpenFin Process Manager Version: RVM = 8.1.0.4
  • Node.js: v16.15.0
  • Windows 10
  • Angular Application with C# .NET backend

Issue:

The current setup saves all application logs locally on users' computers instead of in a centralized location for easier review and debugging. While browsing through the OpenFin Documentation, I came across the sendApplicationLog() method, but it only provides information on the function's parameters. When I attempted to execute this method manually within an OpenFin instance, no output was generated. Are there additional resources available that explain how OpenFin can transmit logs to a remote location or specify a specific destination for logging?

  • Can OpenFin integrate these logs directly into a secure database?

  • Is there a better option than sending all console output to one consolidated location?

    • Approaches Tried:
      • I experimented with Angular's global error handling feature to intercept any global errors, but it does not catch warnings.
      • Would it be possible to modify a global errorHandler to manage warnings and informational messages along with errors?

Appreciate your assistance.

Answer №1

OpenFin offers a unique service that allows for the encryption and uploading of application logs to a secure remote location managed by OpenFin. Users can then easily retrieve these logs using the Log Manager API.

There are two different methods for activating this feature:

You can enable app log management directly in the application manifest file:

{
  "licenseKey": "contract_identifier",
  "startup_app": {
    "enableAppLogging": true,
    "logManagement": {
      "enabled": true, 
    }
  }
}

Alternatively, you have the option to utilize the sendApplicationLog API mentioned in your query.

For more detailed information on implementing and utilizing OpenFin's log management features, please refer to the relevant developer documentation found here:

USE THE FOLLOWING AT YOUR OWN RISK

It is worth noting that there exists an undocumented and unsupported feature which allows users to specify an alternative location for sending logs:

"logManagement": {
  "enabled": true,
  "url": "<YOUR_URL_ENDPOINT>"
}

While this feature may be available in certain versions of RVM/Runtime, OpenFin support cannot confirm its availability or guarantee its continued existence in future updates without prior notice.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Tips for modifying JSON response using a function

When I call the function buildFileTree, I store its response in a constant variable called data. const data = this.buildFileTree(dataObject, 0); The value of dataObject is: const dataObject = JSON.parse(TREE_DATA); And the content of TREE_DATA is: cons ...

Asynchronous requests from clients paired with server-side rendering

Exploring the realm of SEO with Angular4/Node.js has presented a unique challenge for me. Utilizing Angular Universal allows for server-side rendering, enabling me to inject meta keywords, title, and image URLs into the HTML before it reaches the browser. ...

Initializing ngOnInit and saving the value to an array variable

Currently, I am developing a function that retrieves data from an API. However, the function needs to be called within ngOnInit and the value should be stored in an array variable. MyValue: any; MyValue = MyLocation(); Unfortunately, the MyValue ends up ...

Is there a way to change a .pptx document into a base64 string?

Currently, I am working on a project that involves creating an addin for Office. The challenge I am facing is opening other pptx files from within the addin. After some research, I discovered that I need to use base64 for the PowerPoint.createPresentation( ...

Encountered an issue in Angular 2 when the property 'then' was not found on type 'Subscription'

I have been attempting to call a service from my login.ts file but I am encountering various errors. Here is the code snippet in question: login.ts import { Component } from '@angular/core'; import { Auth, User } from '@ionic/cloud-angular ...

Issue with displaying data on a Modal in Angular when clicking for the first time, but successfully displays on the second click

In my display screen, customer details are shown in a table format. When a row is clicked, a modal should pop up displaying detailed information about the customer. The issue I'm facing is that data is not populated on the first click, but it works fi ...

Issue with Destructuring Assignment Syntax in TypeScript

interface User extends Function { player: number, units: number[], sites: string[], } class User extends Function { constructor() { super('return this.player') [this.player, this.units, this.sites] = getBelongings( ...

Newly added rows do not automatically refresh in Angular's mat-table

(Angular 8) I am working with two components, addgame and home. In the home component, I am displaying all games stored in the database using a REST API. Within the home component, I am calling the game component in a dialog view using Mat-dialog. The i ...

"Utilize a loop in Angular 2 to consistently send HTTP GET requests to service

Hello, I'm new to working with Angular. Currently, I have an array of product IDs and I would like to make HTTP GET requests based on each ID in the array using a loop. Can someone assist me with this task? Service : addedProductIdArray : string[] = ...

Stop WebStorm from automatically importing code from a different Angular project within the same workspace

I currently have an angular repository that consists of two projects: a library and an Angular application. To link the library to my project, I utilized the npm link command. Within the package.json file, I specified the entry as follows: ... "my-lib ...

Tips for showing both label and value on a pie slice in Apex charts

I am currently utilizing apex chart within an angular application to showcase charts. I am specifically focusing on a pie chart and aiming to customize it by displaying labels on the values within each slice of the pie, similar to what is shown in the atta ...

Calculating the length of time based on a specific date in Angular 2+: A step-by-step

API: { data:{ "duration": 12, "startDate": "27-01-2020 16:09" } } I am currently working with Angular 2+. In the API response, the duration is set to 12 (in months) and the start date is provided as well... Task at hand: My goal is to ...

Comparing Angular's 'ng serve' and 'npm start' commands

Just a quick query regarding angular-cli. I'm curious, is it correct that when I use ng serve, I am utilizing the global installation of angular-cli but when I opt for npm start, I am using the local one? ...

Tips for setting values to the child component property in Angular 4

When I was using ngif, I encountered an issue with getting the element reference of the child component. After extensive searching, I discovered that in order to access the element, I needed to use view children instead of view child. While I am able to ge ...

Preventing row click in an Angular table when a column is clicked

I want to achieve a function where clicking on a table row will expand and show extra data, but clicking on a column should perform a different action without expanding the row. To see a simplified version of the code example, please visit here <!- ...

Trigger a redraw of the Angular Material sidenav

My webpage features two Angular Material sidenavs. However, the website's CSS includes an @media query: @media (max-width: 1440px) { mat-sidenav { width: 300px; } } When the screen width changes without a page reload, I notice a gap ...

Allow Ionic to exclusively work on Android smartphones

When developing an app using Ionic for iOS, you have the option in Xcode to easily specify if the app should be compatible with iPhone, iPad, or both. Is there a similar feature available for Android where I can limit the app's availability based on ...

Having trouble with Angular 2 not properly sending POST requests?

Having some trouble with a POST request using Angular 2 HTTP? Check out the code snippet below: import { Injectable } from '@angular/core'; import { Http, Response, Headers, RequestOptions } from '@angular/http'; import 'rxjs/add ...

What is the best approach for retrieving values from dynamically repeated forms within a FormGroup using Typescript?

Hello and thank you for taking the time to read my question! I am currently working on an Ionic 3 app project. One of the features in this app involves a page that can have up to 200 identical forms, each containing an input field. You can see an example ...

Headerbar overlapping Div when scrolling

I'm currently trying to create a fixed header bar that allows the content of the page to scroll beneath it rather than displaying above it. This functionality is working on multiple pages, but I'm experiencing issues with my calendar page. When ...