I am trying to get the user identity from ASP.NET to log using NLog but it is not working. Nothing is logged for {aspnet-user-identity} or {aspnet-request-ip}. I have the layout renders in my nlog.config file, but the resulting log messages do not show values for the aspnet layout renderers. It’s not logging this information in the file or the database.
Below is my nlog.config file:
<?xml version="1.0" encoding="utf-8" ?>
<nlog
xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Info"
internalLogFile="C:/Temp/Logs/internal-nlog-AspNetCore.txt">
<extensions>
<add assembly="NLog.Web.AspNetCore" />
</extensions>
<targets>
<!-- File target -->
<target
xsi:type="File"
name="file"
fileName="C:/Temp/Logs/Template/Template_${shortdate}.log"
layout="${longdate}|${aspnet-request-ip}|${aspnet-user-identity}|${level:uppercase=true}|${logger}|${message}|${exception:format=tostring}" />
<!-- Database target -->
<target
xsi:type="Database"
name="database"
connectionString="${configsetting:item=ConnectionStrings.DefaultConnectionString}"
dbProvider="System.Data.SqlClient.SqlConnection,System.Data.SqlClient"
commandText="INSERT INTO Log (Logged, Level, Message, Logger, Exception, UserIdentity, RequestIP) VALUES (@logged, @level, @message, @logger, @exception, @useridentity, @requestip)">
<!-- Define database logging parameters -->
<parameter name="@logged" layout="${longdate}" dbType="DateTime" />
<parameter name="@level" layout="${level}" />
<parameter name="@message" layout="${message}" />
<parameter name="@logger" layout="${logger}" />
<parameter name="@exception" layout="${exception:format=tostring}" />
<parameter name="@useridentity" layout="${aspnet-user-identity}" />
<parameter name="@requestip" layout="${aspnet-request-ip}" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="file" />
<logger name="*" minlevel="Info" writeTo="database" />
</rules>
</nlog>
Here is the log file and you can see the aspnet-request-ip and aspnet-user-identity are empty strings:
2024-06-14 01:05:09.5523|||INFO|Rook.DataAccess.Sql.SqlDbManager|Getting SQL connection for database manager instance 36cb6abe-416b-403d-9ea3-381ab2b4cff0.|
2024-06-14 01:05:09.5546|||INFO|Rook.DataAccess.Sql.SqlDbManager|Database manager instance 36cb6abe-416b-403d-9ea3-381ab2b4cff0 executing SQL: SELECT [UserID], [UserName], [FirstName], [LastName], [Email], [RoleID], [RoleName] FROM [vUserDetails]|
2024-06-14 01:05:09.5546|||INFO|Rook.DataAccess.Sql.SqlDbManager|Database manager instance 36cb6abe-416b-403d-9ea3-381ab2b4cff0 SQL parameters: |
2024-06-14 01:05:09.5546|||INFO|Rook.DataAccess.Sql.SqlDbManager|Database manager instance 36cb6abe-416b-403d-9ea3-381ab2b4cff0 executing SQL: SELECT [AuthRuleID], [ResourceName], [RoleID], [RoleName] FROM [vAuthRuleDetails]|
2024-06-14 01:05:09.5546|||INFO|Rook.DataAccess.Sql.SqlDbManager|Database manager instance 36cb6abe-416b-403d-9ea3-381ab2b4cff0 SQL parameters: |
2024-06-14 01:05:09.5546|||INFO|Rook.AppCore.Web.Services.MvcAuthorizationService|User '[email protected]' has role 'Admin' and has a matching role for resource 'User/Index'|
2024-06-14 01:05:09.5546|||INFO|Rook.AppCore.Web.Filters.LogUserActivity|User '[email protected]' accessed '/User'|
2024-06-14 01:05:09.5546|||INFO|Rook.DataAccess.Sql.SqlDbManager|Database manager instance 36cb6abe-416b-403d-9ea3-381ab2b4cff0 executing SQL: SELECT [UserID], [UserName], [FirstName], [LastName], [Email], [RoleID], [RoleName] FROM [vUserDetails]|
2024-06-14 01:05:09.5546|||INFO|Rook.DataAccess.Sql.SqlDbManager|Database manager instance 36cb6abe-416b-403d-9ea3-381ab2b4cff0 SQL parameters: |
2024-06-14 01:05:10.0935|||INFO|Rook.DataAccess.Sql.SqlDbManager|Getting SQL connection for database manager instance 8469ab7b-fded-4324-b287-804124ba68bc.|
2024-06-14 01:05:10.0935|||INFO|Rook.DataAccess.Sql.SqlDbManager|Database manager instance 8469ab7b-fded-4324-b287-804124ba68bc executing SQL: SELECT [UserID], [UserName], [FirstName], [LastName], [Email], [RoleID], [RoleName] FROM [vUserDetails]|
2024-06-14 01:05:10.0935|||INFO|Rook.DataAccess.Sql.SqlDbManager|Database manager instance 8469ab7b-fded-4324-b287-804124ba68bc SQL parameters: |
2024-06-14 01:05:10.0935|||INFO|Rook.AppCore.Web.Filters.LogUserActivity|User '[email protected]' accessed '/'|
esr124 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.