我正在尝试将NSLog发送到在Simulator,IOS 10.2上运行的Swift 3中的文件中并且什么都没有产生
func redirectConsoleLogToDocumentFolder() {
let file = "file.txt"
if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
let logPath = dir.appendingPathComponent(file).absoluteString
print("log:\(logPath)")
freopen(logPath, "a+", stderr)
}
NSLog("print nslog")
}
输出量
~/Library/Developer/CoreSimulator/Devices/A7B717-3ED8-493A-9778-C594AF9FF446/data/Containers/Data/Application/B0386-64BB-46EB-9BF2-65209FC748CD/Documents/file.txt
唯一的效果是输出不再打印到控制台。
我努力了
freopen(logPath.cString(using: .utf8), "a+", stderr)
和其他各种组合
我毫不费力地用接收到的路径写一个文件,所以这没有任何问题
我希望在路径中看到一个名为file.txt的文件,并且该文件包含“ print nslog”。我尝试先创建文件,但没有成功。
的absoluteString
属性URL
产生一个URL字符串,例如
文件:///path/to/file.txt
不适合作为的参数freopen()
。要以字符串形式获取文件路径,请path
改用:
let logPath = dir.appendingPathComponent(file).path
更好的方法是,使用专用方法将URL路径传递给系统调用:
let logFileURL = dir.appendingPathComponent(file)
logFileURL.withUnsafeFileSystemRepresentation {
_ = freopen($0, "a+", stderr)
}
问题内容: 检查这样的情况后,我有一条重定向的路线 条件为真但未安装组件时,URL会更改。其余的组件代码如下。 我的应用程序组件包含在BrowserRouter中,例如thi 当我在浏览器中直接命中url时,例如’localhost:3000 / intro’组件已成功安装,但是当它通过重定向时,它不会显示该组件。我如何解决它? 因此缺少一个细节,我尝试创建另一个项目来重现该问题。我的App组件是
问题内容: 我正在AIX 6上工作,在KIX Shell上运行Java命令,并且正在尝试调试类加载问题。我放了-verbose:class来打印加载的类,然后>> / home / user / log.log将控制台放到一个文件中。已创建log.log文件,但其大小为零。文件不包含任何信息,所有详细信息都在一闪而过。 问题答案: 也尝试重定向: 您的Java代码可能正在编写您的命令未重定向的信息
问题内容: 如何在Python中将stdout重定向到任意文件? 当从ssh会话中启动运行了很长时间的Python脚本(例如,Web应用程序)并进行背景调整,并且ssh会话关闭时,该应用程序将在尝试写入stdout时引发并失败。我需要找到一种方法来使应用程序和模块输出到文件而不是stdout,以防止由于而导致失败。当前,我使用将输出重定向到文件,并且可以完成工作,但是我想知道是否有一种出于好奇而无
问题内容: 我C编码的一个基本的壳,用于执行基本命令它会执行命令,,等。 我想在我的外壳中执行以下命令。喜欢 ; 这将给我包含过程输出的文件。我找到了一个解决方案,它正在像这样更改shell中的命令。在这种情况下,它将更改为。但是此过程会将输出也提供给文件和终端。如何在终端中停止打印输出。 还是有比使用tee命令更好的解决方案。提前致谢… 问题答案: 这是我用dup2测试的结果 更微妙的一点是在正
问题内容: include(‘header.php’); 上面的代码不断给我重定向的问题。错误如下: 警告:无法修改标头信息-已在/ Applications / MAMP / htdocs / testygubbins / OO / test / form中发送的标头(输出始于/Applications/MAMP/htdocs/testygubbins/OO/test/header.php:15
问题内容: 当我迅速运行此代码时,我不知道为什么应用程序会在“ alertView.show()”部分显示一个断点而终止,请有人帮帮我。 问题答案: 从Xcode 6.0 UIAlertView类: 不推荐使用UIAlertView。改用UIAlertController和UIAlertControllerStyleAlert的preferredStyle。 在Swift(iOS 8和OS X 1