Application Logs

Using the default configuration, Bulksign logs on the file system. The default log files path is :

c:\Program Files\Bulksign\Logs\

The log files configuration location is located at

c:\Program Files\Bulksign\Settings\

Each Bulksign component has it's own logging configuration file :

dashboard.xml : log configuration file for Bulksign Dashboard

api.xml : log configuration file for WebApi

sign.xml : log configuration file for WebSign

service.xml : log configuration file for background service

Configure number of days to keep logs

To save disk space, it's possible to configure the number of days for which to keep the log files. By default Bulksign is configured to keep the log file for the last 120 days. This can be changed by configuring the maxArchiveDays property in each log configuration file :

maxArchiveDays = "120"

Database logging

It's possible to configure Bulksign to log in a database instead of the file-system. Create a new SQL Server database and run the following script :

CREATE TABLE [dbo].[Log](
    [Id] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
    [Application] [nvarchar](200) NULL,
    [LogDate] [datetime2](7) NULL,
    [LogLevel] [nvarchar](100) NULL,
    [Message] [nvarchar](max) NULL,
    [MachineName] [nvarchar](max) NULL,
    [CallSite] [nvarchar](max) NULL,
    [Exception] [nvarchar](max) NULL,
    [Stacktrace] [nvarchar](max) NULL,
    [RequestId] [nvarchar](50) NULL,
 CONSTRAINT [PK_Log] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[Log] ADD  CONSTRAINT [DF_Log_Id]  DEFAULT (newid()) FOR [Id]
GO

Configure each Bulksign component to use the new DB target :

  • enter the connection string for the database by filling connectionString value
  <target xsi:type="Database" name="databaseLog" dbProvider="sqlserver" connectionString=""  keepConnection="true" commandText="insert into Log(Application,LogDate,LogLevel,Message,MachineName, CallSite, Exception, Stacktrace, RequestId) values(@log_application, @time_stamp, @level,@message,@machinename, @call_site, @log_exception, @stacktrace, @requestId)">
      <parameter name="@log_application" layout="Dashboard" />
      <parameter name="@time_stamp" layout="${longdate}" />
      <parameter name="@level" layout="${level}" />
      <parameter name="@message" layout="${message}" />
      <parameter name="@machinename" layout="${machinename}" />
      <parameter name="@call_site" layout="${callsite:filename=true}" />
      <parameter name="@log_exception" layout="${exception}" />
      <parameter name="@stacktrace" layout="${stacktrace}" />
      <parameter name="@requestId" layout="${activityid}" />
    </target>
  • uncomment this section :
<!--
      <logger name="*" minlevel="Info" writeTo="databaseLog" />
-->

to

      <logger name="*" minlevel="Info" writeTo="databaseLog" />
  • restart IIS and check the logs database


Logs access for support scenarios

To ease up the support scenarios, we can provide you with a small web application that needs to be deployed on your server and allows our support team to acess the application logs.

This is available on request for any customer.

Other logging sources ?

Bulksign is using the NLog library for logging, here is a list of additional logging targets that can be configured . These include integrations with Splunk, CloudWatch, SNS, Loki, ElasticSearch etc etc.

Sensitive user information in logs

Using the default log level INFO, the logs are guaranteed to NOT contain sensitive user informations. The only exception to this is when using OIDC provider for signer authentication. In this case the logs with contain the response from IDP server which will include the user name/email/other informations which might be sensitive.

Switching to DEBUG level logs, due to the nature of this particular log level and required information, there is NO guarantee that the logs will not contain sesnsitive user information.