- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何分离我的 normal
从我的安全日志记录/审计中记录/审计? Windows 事件日志将这种区别与应用程序事件和安全事件区分开来。
如果我可以创建自定义 LogLevel,例如LogLevel.AuditSuccess 或 LogLevel.AuditFailure,然后我可以将我的配置文件规则设置为等于这些并输出这些事件。例如,
<logger name="*" levels="AuditSuccess,AuditFailure" writeTo="target1"/>
<logger name="*" levels="DEBUG,INFO" writeTo="target1"/>
<logger name="myNamespace.*" levels="INFO,ERROR" writeTo="target1"/>
<logger name="mySecurityLogger" levels="INFO,ERROR" writeTo="target2"/>
public class MyClass {
private static Logger _logger = LogManager.GetCurrentClassLogger();
private statac Logger _loggerSecurity = LogManager.GetLogger("mySecurityLogger");
...
}
最佳答案
这可能不是你想要的,但请耐心等待......
您可以包装 NLog,以便您可以使用自己的“记录器”进行记录。看看Common.Logging for .NET或 SLF有关如何包装 NLog 的示例(它们是完整的日志抽象,因此它们比您所追求的更复杂,但您可能会找到一些好主意)。另见 here (如果您认为您可能对简单地包装或子类化 NLog Logger 感兴趣,则可能应该首先查看此处)有关如何正确包装(或子类化)NLog 的示例(注意,关键是传递包装/子类化的类型logger 到 NLog 的 Log 方法)。
所以,你可能有这样的东西(缩写):
//Wrapped logger that you could create once in a class and use to log both
//"normal" messages and "audit" messages. NLog log level is determined by the
//logger configuration for the class.
public class MyLogger
{
private Logger logger; //NLog logger
public MyLogger(string name)
{
logger = LogManager.GetLogger(name);
}
public void Info(string message)
{
if (!logger.IsInfoEnabled) return;
Write(LogLevel.Info, LogLevel.Info.ToString(), message);
}
public void AuditSuccess(string message)
{
if (!logger.IsInfoEnabled) return;
Write(LogLevel.Info, "AuditSuccess", message);
}
private void Write(LogLevel level, string customLevel, string message)
{
LogEventInfo le = new LogEventInfo(level, logger.Name, message);
le.Context["CustomLogLevel"] = customLevel;
logger.Log(typeof(MyLogger), le);
}
}
//Wrapped logger that you could create once in a class and use to log both "normal"
//and "audit" messages. NLog log level for each type of message is controllable
//separately since the logger wrapper actually wraps two logger.
public class MyLogger
{
private Logger logger; //NLog logger
private Logger auditLogger;
public MyLogger(string name)
{
logger = LogManager.GetLogger(name);
auditLogger = LogManager.GetLogger("AuditLogger");
}
public void Info(string message)
{
if (!logger.IsInfoEnabled) return;
Write(logger, LogLevel.Info, LogLevel.Info.ToString(), messsage);
}
public void AuditSuccess(string message)
{
if (!auditLogger.IsInfoEnabled) return;
Write(auditLogger, LogLevel.Info, "AuditSuccess", message);
}
private void Write(Logger log, LogLevel level, string customLevel, string message)
{
LogEventInfo le = new LogEventInfo(level, log.Name, message);
le.Context["CustomLogLevel"] = customLevel;
log.Log(typeof(MyLogger), le);
}
}
关于logging - 自定义 NLog LogLevels 还是每个类有多个记录器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3867650/
我正在 .Net Core 3.1 中实现自定义 ILogger。该类需要实现以下契约 public void Log(LogLevel logLevel, EventId eventId, TSta
我想使用 nlog 执行此操作(来自 log4net docu): 此示例显示如何仅交付重要事件。 LevelEvaluator 指定了阈值 WARN。这意味着将为记录的每个 WARN 或更高级别的消
是否可以定义两个不同的 PatternLayouts 并依赖于它使用第一个或第二个的应用程序 LogLevel? 示例: 如果我使用默认的 ERROR 级别运行我的应用程序,它应该打印如下日志语句:
我想看看我的 .htaccess 文件是如何工作的。我在里面放了一个 LogLevel 指令, LogLevel alert rewrite:trace3 ... 但是在我的 httpd 日志文件中
在书中LDD3 by Rubini ,在 printk 部分下,作者说我们可以为我们的消息提供日志级别/优先级。但是我尝试了一个简单的模块程序,它具有不同的 printk 日志级别,但它显示的顺序与我
如何分离我的 normal从我的安全日志记录/审计中记录/审计? Windows 事件日志将这种区别与应用程序事件和安全事件区分开来。 如果我可以创建自定义 LogLevel,例如LogLevel.A
我有一个这样定义的组件: public class MyClass { public MyClass(ILogger logger) { } } 我不知道使用该组件的开发者是否
我有一个这样定义的组件: public class MyClass { public MyClass(ILogger logger) { } } 我不知道使用该组件的开发者是否
我在类里面登录时使用了以下方法: import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory
我的配置是标准的 logging: # The default level of all loggers. Can be OFF, ERROR, WARN, INFO, DEBUG, TRACE,
很清楚如何覆盖 host.json 中的日志级别: Configure the trace level for logging Configuring Log Level for Azure Func
很清楚如何覆盖 host.json 中的日志级别: Configure the trace level for logging Configuring Log Level for Azure Func
我有这样的记录器代码: import logging logger = logging.getLogger("simple_example") logger.setLevel(logging.DEBU
我使用 GWT 2.7 并希望在我的应用程序中提供带有 Level INFO 和 WARNUNG 的日志记录。在我的 gwt.xml 文件中,我有: 它在 Dev 模式下运行完美,但在 Super
例如我有以下集合: db.names.find({}) { "_id" : ObjectId("5768d9b4bc6f464899594570"), "name" : "t1", "loglevel
来自 Java 开发,我学会了欣赏 LogLevel,如何在 Logback 或 Log4j 中设置它。 我的 symphony 4.2 项目中使用了 Monolog。 我希望从某个 Controll
我无法让记录器按我希望的方式工作。我已将日志级别设置为警告,但控制台窗口仍然充斥着信息日志。 我在下面提供了一些示例,在 Startup.cs 或 Program.cs 中没有额外配置。 如果需要,我
这个问题在这里已经有了答案: How to write logs to EventLog by ILogger in Asp.net Core? (3 个答案) 关闭 9 个月前。 我在将 **In
框架:.NET Core 2.1 我正在为 Serilog 使用 Elasticsearch 配置,如下面的代码中所述: 启动.cs Log.Logger = new LoggerConfigurat
我有一个 React 应用程序,它使用 loglevel-plugin-remote 以及自定义 API 端点来接收日志以进行错误监控。 我的日志配置是 import log from 'loglev
我是一名优秀的程序员,十分优秀!