我需要在.txt文件中写一些日志,为了更清晰,我想要为某些文字着色。
我怎么能这样做?
这是我的功能
+(void)writeInLogFile:(NSString *)strLog inFolder:(NSString *)folder fileName:(NSString *)fileName extension:(NSString *)extension
{
[[NSUserDefaults standardUserDefaults] synchronize];
BOOL LogFileOnIpad = [[NSUserDefaults standardUserDefaults] boolForKey:PREF_LOG_FILE_ON_IPAD];
if(LogFileOnIpad)
{
//Create Directory
NSString *path;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
path = [[paths objectAtIndex:0] stringByAppendingPathComponent:folder];
NSError *error;
if (![[NSFileManager defaultManager] fileExistsAtPath:path]) //Does directory already exists?
{
if (![[NSFileManager defaultManager] createDirectoryAtPath:path
withIntermediateDirectories:YES
attributes:nil
error:&error])
{
NSLog(@"Create directory error: %@", error);
}
}
NSString* filePath = [NSString stringWithFormat:@"%@/%@.%@",path,fileName,extension];
if(![[NSFileManager defaultManager] fileExistsAtPath:filePath])
[[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[strLog dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
}
}
这就是我使用我的功能的方式:
NSString* str = @"SOME STRING TO WRITE IN LOG FILE";
[HandleString writeInLogFile:str inFolder:LOGS_FOLDER fileName:[NSString stringWithFormat:@"%@_%@",LOGS_IPAD,[HandleString convertDayDateForLog]] extension:@"txt"];
我尝试使用UIColor声明标签并将其文本传递给我的函数,但没有成功。
答案 0 :(得分:1)
您正在创建的文件是纯文本文件,无格式(粗体,斜体,彩色文本等)。 您需要编写一个富文本文件.rtf才能为某些文本着色。虽然我不知道你会怎么做。
答案 1 :(得分:1)
尝试使用.html扩展名编写文件,而不是下面的示例:
<p style="color:red" /> Error Message </p>
<p style="color:green" /> Success Message </p>
并在任何浏览器中打开此文件,以便您可以清楚地看到日志消息。
答案 2 :(得分:0)
在写入文件时,只需将扩展名更改为rtf即可。之后,您可以将颜色文本写入文件中。