Giả sử rằng bạn có một phương pháp mở rộng gọi là Encrypt
rằng bạn có thể gọi về một đối tượng String
,
tôi thấy hai giải pháp:
- Hoặc bạn gọi chức năng mã hóa của bạn khi đăng nhập vào mã của bạn :
logger.Trace("Sample trace message".Encrypt());
- Hoặc bạn có thể tạo ra những phương pháp mới để đăng nhập các sự kiện và gọi cho họ thay vì
NLog.Log()
phương pháp cơ bản:
class Log {
public static void TraceEncrypt(Logger logger, String message) {
LogEncrypt(logger, LogLevel.Trace, message);
}
public static void DebugEncrypt(Logger logger, String message) {
LogEncrypt(logger, LogLevel.Debug, message);
}
public static void InfoEncrypt(Logger logger, String message) {
LogEncrypt(logger, LogLevel.Info, message);
}
public static void WarnEncrypt(Logger logger, String message) {
LogEncrypt(logger, LogLevel.Warn, message);
}
public static void ErrorEncrypt(Logger logger, String message) {
LogEncrypt(logger, LogLevel.Error, message);
}
public static void FatalEncrypt(Logger logger, String message) {
LogEncrypt(logger, LogLevel.Fatal, message);
}
public static void LogEncrypt(Logger logger, LogLevel logLevel, String message) {
// Prepare log event
LogEventInfo logEvent = new LogEventInfo(logLevel, logger.Name, message.Encrypt());
// Log data
logger.Log(logEvent);
}
}
cảm ơn, tôi nghĩ rằng đây là nó. –
cảm ơn. Bạn phải thêm vào chính của bạn: 'ConfigurationItemFactory.Default.LayoutRenderers .RegisterDefinition (" Encrypt ", typeof (NLog.LayoutRenderers.Wrappers.EncryptLayoutRendererWrapper));' – daniel