Comments (9)
Thanks for your proposal.
Did you try it with null value? If yes, what is the result?
from nlog.web.
Yes, sure, I tried with null value. And exception is:
System.NullReferenceException in NLog.Web.Internal.PropertyReader.GetPropertyInfo(Object value, String propertyName)
Also I tried that hack in config:
${when:when='${aspnet-session:Variable=User}' != null:inner='${aspnet-session:Variable=User.Name:EvaluateAsNestedProperties=true}'}
But to no avail
from nlog.web.
So null checking would be useful. But we need to check the side affects.
What do you tkink @304NotModified?
from nlog.web.
I think this is the best approach:
I think there need to null check for Session["user"].
If object is not null, then try to read property of that object, else return.
from nlog.web.
I just opened a bug fix issue for this, #70
@worldofsites,
By the way, you are trying to read User.Name
${when:when='${aspnet-session:Variable=User}' != null:inner='${aspnet-session:Variable=User.Name:EvaluateAsNestedProperties=true}'}
but it is actually UserInfo
Session["user"] = new UserInfo { Name= "johnDoe", Id = 100};
Is it just a typo in the issue or could it be the reason?
Thanks for reporting!
from nlog.web.
@UgurAldanmaz
Key in session = "user", so => in config 'Variable' should "User".
As in https://github.com/NLog/NLog/wiki/AspNetSession-Layout-Renderer
And also it's just example. I tried with the real data with another session keys.
from nlog.web.
You are right. Sorry for my oversight.
from nlog.web.
@UgurAldanmaz @304NotModified
Also, about "Variable" values:
Please check nullable context places in "...ValueLayout.." classes, for example AspNetRequestValueLayoutRenderer.cs
var httpRequest = HttpContextAccessor.HttpContext.TryGetRequest();
should be
var httpRequest = HttpContextAccessor?.HttpContext?.TryGetRequest();
like in AspNetRequestUrlRenderer.cs
Because all elements of the chain can be null. I tried that and can confirm.
Thanks.
from nlog.web.
PS it's OK for me to move to VS2015 (C# 6)
from nlog.web.
Related Issues (20)
- Add support for Custom Claim management in AspNetUserClaimLayoutRenderer HOT 1
- Apply ArgumentNullException.ThrowIfNull to NLog source-code HOT 2
- Introduce ObjectPath as alternative to EvaluateAsNestedProperties for HttpContext.Items HOT 3
- UseNLog doesn't accept configuration file name HOT 8
- 2 spaces are output when OutputFormat is JsonDictionary and QueryString is empty in AspNetQueryStringLayoutRenderer. HOT 3
- Appsettings loglevel does not work in 5.x.x version HOT 2
- Naming inconsistency in Nuget-package repository HOT 2
- The base path for the `appsettings.json` do not match the base path of the web host. HOT 5
- NuGet server returned 403: The specified API key is invalid, has expired
- AspNetBufferingTargetWrapper should not depend on NLogHttpModule HOT 1
- Mark NLogBuilder as obsolete and redirect to LoadConfigurationFromAppSettings()
- Extend ${aspnet-response-statuscode} to include Enum-ToString value HOT 4
- Extend AspNetUserClaimLayoutRenderer to handle multi-values HOT 2
- Better diagnostics for AspNetBufferingTargetWrapper without HttpModule or Middleware HOT 2
- Better diagnostics for AspNetRequestPostedBodyLayoutRenderer without HttpModule or MiddleWare HOT 1
- Version support for.net 7 HOT 2
- app.UseMiddleware<NLogRequestPostedBodyMiddleware>() does not work in dotnet 7 HOT 5
- Creation of JsonAttributes before registering nlog web does not work HOT 4
- NLog.Web.AspNetCore dependencies HOT 3
- LoadConfigurationFromAppSettings with reloadOnChange = true should force enable autoReload HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nlog.web.