这是我想要做的一个例子:
MessageBox.Show("Error line number "+CurrentLineNumber);
Run Code Online (Sandbox Code Playgroud)
当前行号将是此段代码的源代码中的行号.
我怎样才能做到这一点?
用于记录目的
__LINE__
__FILE__
Run Code Online (Sandbox Code Playgroud)
我是C/C++的朋友.在Java中获取该信息,我不得不抛出异常并抓住它.为什么在现代编程语言中忽略了这些旧的备用语言?他们的简约有些神奇.
我有一个包装NLog的类(称为NLogger).我的日志保存到我的数据库中.我遇到问题的是如何显示日志记录发生的位置.我有这个
<parameter name="@Logger" layout="${callsite}"/>
Run Code Online (Sandbox Code Playgroud)
但这只是显示Core.Logging.Loggers.NLogLogger.Log这是我的NlogWrapper而不是调用我的包装器的类.
这是我的包装方法
public void Log(LogType messageType, Type context, string message, Exception exception)
{
NLog.Logger logger = NLog.LogManager.GetLogger(context.Name);
LogLevel logLevel = LogLevel.Info; // Default level to info
switch (messageType)
{
case LogType.Debug:
logLevel = LogLevel.Debug;
break;
case LogType.Info:
logLevel = LogLevel.Info;
break;
case LogType.Warning:
logLevel = LogLevel.Warn;
break;
case LogType.Error:
logLevel = LogLevel.Error;
break;
case LogType.Fatal:
logLevel = LogLevel.Fatal;
break;
default:
throw new ArgumentException("Log message type is not supported");
}
logger.Log(logLevel, message, exception);
}
Run Code Online (Sandbox Code Playgroud) 是否可以使用Cocoa/Objective C中的NSLog记录当前行号?
这就是我认为我应该做的事情:
NSLog(@"current line: %@ and value: %@",__LINE__,abc);
Run Code Online (Sandbox Code Playgroud)
而且我得到了 Thread 1: Program Received Signal: "EXC_BAD_ACCESS"