Cause
A message placeholder consists of numeric characters only.
Rule description
Named placeholders in the logging message template should not be composed of only numeric characters.
How to fix violations
Rename the numeric placeholder.
For usage examples, see the Microsoft.Extensions.Logging.LoggerExtensions.LogInformation method.
Example
sample · csharpdocs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2253.cssnippet1
using Microsoft.Extensions.Logging;
namespace ca2253
{
//<snippet1>
public class UserService
{
private readonly ILogger<UserService> _logger;
public UserService(ILogger<UserService> logger)
{
_logger = logger;
}
public void Add(string firstName, string lastName)
{
// This code violates the rule.
_logger.LogInformation("Adding user with first name {0} and last name {1}", firstName, lastName);
// This code satisfies the rule.
_logger.LogInformation("Adding user with first name {FirstName} and last name {LastName}", firstName, lastName);
// ...
}
}
//</snippet1>
}When to suppress errors
Do not suppress a warning from this rule.