将错误文件发送到QT下的支持

时间:2011-06-09 07:39:23

标签: qt

我在QTCreater下创建了一个项目。我想将所有错误保存在日志文件中 并将其发送给程序支持以解决这些错误。

我的意思是自动生成文件并在出现错误时自动发送。我有20多个源文件,我不喜欢在每个方法中调用函数在文件中插入数据并保存。我需要的是在grails应用程序中做过滤器

有办法吗?

thx for you help

2 个答案:

答案 0 :(得分:0)

通过正常的try / catch捕获所有错误(我更喜欢if / else检查)并将消息发送到自行开发的Logging类,它将把它输出到文件中?

QTextStream

答案 1 :(得分:0)

我使用这个场景尝试它可以帮助你:

1-创建一个表单,其中包含2个按钮,一个用于开始录制,另一个用于停止。 (记录表格)

2-在头文件中声明一个类型为record form的指针,并在构造函数中创建一个新实例。

3-在记录表格中有2个方法和一个变量:

标题中的

private
QString fileName;

在构造函数中:

conf = new conf(this);
connect(ui->btnStartRecording,SIGNAL(clicked()),this,SLOT(on_btnStartRecording_clicked()));
connect(ui->btnStopRecording,SIGNAL(clicked()),this,SLOT(on_btnStopRecording_clicked()));

第一种方法:

void record::on_btnStartRecording_clicked(){
        fileName = QFileDialog::getSaveFileName(this, tr("Save As"), ".log");
        if (!fileName.isEmpty()){
            if (!fileName.contains(".log")){
                fileName = fileName + ".log";
            }
                conf->open_close_file(fileName,true);
                QMessageBox::warning(this, "Start Recording", "Start Recording");
                ui->btnStartRecording->setDisabled(true);
                ui->btnStopRecording->setDisabled(false);
        }
   }

第二种方法:

void record::on_btnStopRecording_clicked(){
        if (!fileName.isEmpty()){
                conf->open_close_file(fileName,false);
                QMessageBox::warning(this, "Stop Recording", "Stop Recording");
                ui->btnStartRecording->setDisabled(false);
                ui->btnStopRecording->setDisabled(true);
        }
 }

4- conf是一个具有另外2个方​​法和1个变量的类:

变量:

QFile *file;

第一种方法:

void conf::open_close_file(QString fileName, bool boolFlag){
if (boolFlag == true){
    file->setFileName(fileName);
    if(file->open(QFile::WriteOnly | QFile::Text)){
    }
}else{
    file->close();
    file->setFileName("");
}
}

第二种方法:

void conf::write_in_file(QString data){
if (flag == true){
   QDateTime time;
   QString dataEntry = ">>>  " + time.currentDateTime().toString("dd/MM/yyyy [hh:mm:ss.zzz]") + ": " + data;
   QByteArray byte;
   byte.append(dataEntry);
   QDataStream out(file);
   out<<byte<<"\n";
}
}

5-要在每个方法中调用write_in_file方法,以保存其中发生的任何错误。

6-最后点击停止记录并打开文件以查看结果

注意:

a-boolflag用于区分打开或关闭文件的方法调用。

b-您可以在单击开始按钮后关闭记录表单,然后处理程序出现错误,然后再打开它并单击停止(必须使用this.accept和this.reject)

希望这可以帮到你