我有我认为会写入txt文件的代码,但它无效。路径确实存在,但txt文件本身不存在,这就是为什么我有“if”语句。我不确定问题出在哪里,因为代码运行并编译没有错误。任何帮助都会有用。说明:
创建一个日志记录类。 字段
构造(字符串) 将文件名设置为参数。 如果文件不存在,则创建该文件。
方法 采用字符串消息和日志级别枚举的Log方法(Debug,Warn,Info,Error) 此方法将以附加模式打开文件,并使用以下格式将消息和枚举添加为新行:
主 创建日志对象。 使用warn枚举值使用消息调用日志对象。 使用debug枚举值使用消息调用日志对象。 使用info枚举值使用消息调用日志对象。 使用错误枚举值使用消息调用日志对象。
以下是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Logging
{
public class Log
{
public enum Levels { Debug, Warn, Info, Error};
private string path = @"C:\Users\eliotta1130\Desktop\CSharp\Labs\Logging.txt";
//public string Path { get; set; }
//public Levels Levels { get; set; }
public Log(string path)
{
this.path = path;
if(!File.Exists(path))
{
File.Create(path);
}
StreamWriter textOut = new StreamWriter( new FileStream(
path, FileMode.Open, FileAccess.Write));
textOut.WriteLine(DateTime.Now);
textOut.Close();
}
public void tWrite(Levels levels, string message)
{
StreamWriter fs = new StreamWriter( new FileStream(path, FileMode.Append, FileAccess.Write));
fs.WriteLine(string.Format("{0}, {1}", DateTime.Now.ToString("HH:mm:ss.ffff")), message);
fs.Close();
}
}
}
这是我试图调用类对象的地方。
namespace Logging
{
class Logging
{
static void Main(string[] args)
{
Log files = new Log("Logging.txt");
files.tWrite(Log.Levels.Debug , "Fix the problem");
files.tWrite(Log.Levels.Warn , "Fix the problem");
files.tWrite(Log.Levels.Info , "Fix the problem");
files.tWrite(Log.Levels.Error , "Fix the problem");
}
}
}
答案 0 :(得分:3)
代码似乎正常运行。
但是,由于您使用"Logging.txt"
创建文件而没有路径,因此您的文件将在bin\debug
文件夹中创建,您应该在那里看到日志。
或者如果您需要桌面路径,可以使用以下代码:
var fullPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
, "Logging.txt")
并使用fullPath创建文件。
另外,要在文件中附加一行,您只需使用以下代码:
var outPut = string.Format("{0}, {1}", DateTime.Now.ToString("HH:mm:ss.ffff")), message);
System.IO.File.AppendAllLines(path, new string[]{outPut});
答案 1 :(得分:0)
您可以像下面这样使用:
File.WriteAllText("your path", "The text to write to the file");
或者,您可以使用AppendAllText()
File.AppendAllText("your path", "The text to write to the file");
其中File位于using System.IO;
命名空间。
所以你的编码就像这样:
public Log(string path)
{
this.path = path;
if(!File.Exists(path))
{
File.Create(path);
}
}
public void tWrite(Levels levels, string message)
{
string contentToWrite=string.Format("{0}, {1}", DateTime.Now.ToString("HH:mm:ss.ffff")), message);
File.AppendAllText(path, contentToWrite);
}
答案 2 :(得分:0)
你也可以这样写
import cx_Oracle
def test_oracle():
connection = cx_Oracle.connect('user', 'password', 'tns')
try:
cursor = connection.cursor()
cursor.execute('SELECT day_no,area_code ,start_date from dic.b_td_m_area where rownum<10')
#only print head
title = [i[0] for i in cursor.description]
print(title)
# column info
for x in cursor.description:
print(x)
finally:
cursor.close()
if __name__ == "__main__":
test_oracle();
请注意,第二个参数为true表示它会将您的消息附加到现有文本中。