在 Java 和 C# 中的新行上记录函数调用



我在CSharp和Java中有一个日志记录函数,用于遍历堆栈。如何使每个日志仅打印到新行。下面是我的Java和CSharp函数。

public static void LogFunctionCall(String parameters){
Object trace =  Thread.currentThread().getStackTrace()[3];
android.util.Log.i("@@@@@@@@@@@@@@@@@@" + trace.toString()+ "", parameters );
}

Java版本是这个

public static void LogFunctionCall(string parameters,
[System.Runtime.CompilerServices.CallerMemberName] string methodName = "",
[System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "",
[System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0)
{
var stackFrame = new StackFrame(1);
var callerMethod = stackFrame.GetMethod();
var className = callerMethod.DeclaringType;
System.Diagnostics.Trace.WriteLine("CCCCCCCCCCCCCCCC" + " " + className + " " + methodName + " " + sourceLineNumber + " " + parameters + "n");
}

我在Windows机器上编码。 请问我需要在哪里放置换行符。我试过这个

public static void LogFunctionCall(String parameters){
Object trace =  Thread.currentThread().getStackTrace()[3];
android.util.Log.i("@@@@@@@@@@@@@@@@@@" + trace.toString()+ "", parameters + "n" );
}

但我仍然看到一些原木被聚集在一条线上。

不要n,而是尝试rn(回车符和换行符(。某些文本编辑器的显示方式会有所不同,因此换行符可能位于其中,但无论您使用什么应用程序读取日志,都可能无法正确显示它。

你也可以试试

System.lineSeparator();

我见过/n 不起作用但 lineSep 不起作用的情况。

此外,由于尚未提及,Environment.NewLine将为您提供为当前环境配置的新行字符。

最新更新