Commit 6dc92ced authored by BRAMAS Berenger's avatar BRAMAS Berenger

use FLOG instead of FDEBUG

parent 8ae58287
......@@ -126,7 +126,7 @@ public:
virtual void P2PRemote(const FTreeCoordinate& /*inLeafPosition*/,
ContainerClass* const FRestrict /*targets*/, const ContainerClass* const FRestrict /*sources*/,
ContainerClass* const /*directNeighborsParticles*/[27], const int /*size*/) {
FDEBUG( FDebug::Controller.write("Warning, P2P remote is used but not implemented!").write(FDebug::Flush) );
FLOG( FDebug::Controller.write("Warning, P2P remote is used but not implemented!").write(FDebug::Flush) );
}
};
......
......@@ -42,7 +42,7 @@ public:
*/
template<typename... Args>
void push(const FPoint& /*inParticlePosition*/, Args ... /*args*/){
FDEBUG( FDebug::Controller.write("Warning, push is not implemented!").write(FDebug::Flush) );
FLOG( FDebug::Controller.write("Warning, push is not implemented!").write(FDebug::Flush) );
}
/**
......
......@@ -45,7 +45,7 @@ public:
*/
template<typename... Args>
void push(const FPoint& /*inParticlePosition*/, Args ... /*args*/){
FDEBUG( FDebug::Controller.write("Warning, push is not implemented!").write(FDebug::Flush) );
FLOG( FDebug::Controller.write("Warning, push is not implemented!").write(FDebug::Flush) );
}
};
......
......@@ -93,7 +93,7 @@ class FOctree : protected FAssertable, public FNoCopyable {
* @return the box num at the leaf level that contains inRelativePosition
*/
int getTreeCoordinate(const FReal inRelativePosition) const {
FDEBUG( fassert(inRelativePosition >= 0 && inRelativePosition < this->boxWidth, "Particle out of box", __LINE__, __FILE__) );
FLOG( fassert(inRelativePosition >= 0 && inRelativePosition < this->boxWidth, "Particle out of box", __LINE__, __FILE__) );
const FReal indexFReal = inRelativePosition / this->boxWidthAtLevel[this->leafIndex];
/*const int index = int(FMath::dfloor(indexFReal));
if( index && FMath::LookEqual(inRelativePosition, this->boxWidthAtLevel[this->leafIndex] * FReal(index) ) ){
......
This diff is collapsed.
This diff is collapsed.
......@@ -68,7 +68,7 @@ public:
this->kernels[idxThread] = new KernelClass(*inKernels);
}
FDEBUG(FDebug::Controller << "FFmmAlgorithmSectionTask (Max Thread " << omp_get_max_threads() << ")\n");
FLOG(FDebug::Controller << "FFmmAlgorithmSectionTask (Max Thread " << omp_get_max_threads() << ")\n");
}
/** Default destructor */
......@@ -120,8 +120,8 @@ private:
/** P2M */
void bottomPass(){
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Bottom Pass\n").write(FDebug::Flush) );
FDEBUG(FTic counterTime);
FLOG( FDebug::Controller.write("\tStart Bottom Pass\n").write(FDebug::Flush) );
FLOG(FTic counterTime);
typename OctreeClass::Iterator octreeIterator(tree);
......@@ -139,7 +139,7 @@ private:
#pragma omp taskwait
FDEBUG( FDebug::Controller << "\tFinished (@Bottom Pass (P2M) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\tFinished (@Bottom Pass (P2M) = " << counterTime.tacAndElapsed() << "s)\n" );
}
/////////////////////////////////////////////////////////////////////////////
......@@ -149,8 +149,8 @@ private:
/** M2M */
void upwardPass(){
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Upward Pass\n").write(FDebug::Flush); );
FDEBUG(FTic counterTime);
FLOG( FDebug::Controller.write("\tStart Upward Pass\n").write(FDebug::Flush); );
FLOG(FTic counterTime);
// Start from leal level - 1
typename OctreeClass::Iterator octreeIterator(tree);
......@@ -161,7 +161,7 @@ private:
// for each levels
for(int idxLevel = OctreeHeight - 2 ; idxLevel > 1 ; --idxLevel ){
FDEBUG(FTic counterTimeLevel);
FLOG(FTic counterTimeLevel);
// for each cells
do{
// We need the current cell and the child
......@@ -176,11 +176,11 @@ private:
octreeIterator = avoidGotoLeftIterator;// equal octreeIterator.moveUp(); octreeIterator.gotoLeft();
#pragma omp taskwait
FDEBUG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
FLOG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
}
FDEBUG( FDebug::Controller << "\tFinished (@Upward Pass (M2M) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\tFinished (@Upward Pass (M2M) = " << counterTime.tacAndElapsed() << "s)\n" );
}
/////////////////////////////////////////////////////////////////////////////
......@@ -191,8 +191,8 @@ private:
void transferPass(){
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Downward Pass (M2L)\n").write(FDebug::Flush); );
FDEBUG(FTic counterTime);
FLOG( FDebug::Controller.write("\tStart Downward Pass (M2L)\n").write(FDebug::Flush); );
FLOG(FTic counterTime);
const CellClass* neighbors[343];
......@@ -204,7 +204,7 @@ private:
// for each levels
for(int idxLevel = 2 ; idxLevel < OctreeHeight ; ++idxLevel ){
FDEBUG(FTic counterTimeLevel);
FLOG(FTic counterTimeLevel);
// for each cells
do{
int counter = tree->getInteractionNeighbors(neighbors, octreeIterator.getCurrentGlobalCoordinate(), idxLevel);
......@@ -230,10 +230,10 @@ private:
}
#pragma omp taskwait
FDEBUG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
FLOG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
}
FDEBUG( FDebug::Controller << "\tFinished (@Downward Pass (M2L) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\tFinished (@Downward Pass (M2L) = " << counterTime.tacAndElapsed() << "s)\n" );
}
/////////////////////////////////////////////////////////////////////////////
......@@ -242,8 +242,8 @@ private:
void downardPass(){ // second L2L
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Downward Pass (L2L)\n").write(FDebug::Flush); );
FDEBUG(FTic counterTime);
FLOG( FDebug::Controller.write("\tStart Downward Pass (L2L)\n").write(FDebug::Flush); );
FLOG(FTic counterTime);
typename OctreeClass::Iterator octreeIterator(tree);
octreeIterator.moveDown();
......@@ -253,7 +253,7 @@ private:
const int heightMinusOne = OctreeHeight - 1;
// for each levels exepted leaf level
for(int idxLevel = 2 ; idxLevel < heightMinusOne ; ++idxLevel ){
FDEBUG(FTic counterTimeLevel);
FLOG(FTic counterTimeLevel);
// for each cells
do{
#pragma omp task firstprivate(octreeIterator) shared(idxLevel)
......@@ -267,10 +267,10 @@ private:
octreeIterator = avoidGotoLeftIterator;
#pragma omp taskwait
FDEBUG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
FLOG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
}
FDEBUG( FDebug::Controller << "\tFinished (@Downward Pass (L2L) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\tFinished (@Downward Pass (L2L) = " << counterTime.tacAndElapsed() << "s)\n" );
}
......@@ -281,9 +281,9 @@ private:
/** P2P */
void directPass(){
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Direct Pass\n").write(FDebug::Flush); );
FDEBUG(FTic counterTime);
FDEBUG(FTic computationCounter);
FLOG( FDebug::Controller.write("\tStart Direct Pass\n").write(FDebug::Flush); );
FLOG(FTic counterTime);
FLOG(FTic computationCounter);
const int heightMinusOne = OctreeHeight - 1;
......@@ -305,7 +305,7 @@ private:
} while(octreeIterator.moveRight());
FDEBUG( computationCounter.tic() );
FLOG( computationCounter.tic() );
for( int idxShape = 0 ; idxShape < SizeShape ; ++idxShape){
const int nbLeaf = shapes[idxShape].getSize();
......@@ -322,17 +322,17 @@ private:
#pragma omp taskwait
}
FDEBUG( computationCounter.tac() );
FLOG( computationCounter.tac() );
FDEBUG( FDebug::Controller << "\tFinished (@Direct Pass (P2P) = " << counterTime.tacAndElapsed() << "s)\n" );
FDEBUG( FDebug::Controller << "\t\t Computation P2P : " << computationCounter.cumulated() << " s\n" );
FLOG( FDebug::Controller << "\tFinished (@Direct Pass (P2P) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\t\t Computation P2P : " << computationCounter.cumulated() << " s\n" );
}
void L2PPass(){
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart L2P Pass\n").write(FDebug::Flush); );
FDEBUG(FTic counterTime);
FLOG( FDebug::Controller.write("\tStart L2P Pass\n").write(FDebug::Flush); );
FLOG(FTic counterTime);
typename OctreeClass::Iterator octreeIterator(tree);
octreeIterator.gotoBottomLeft();
......@@ -347,7 +347,7 @@ private:
#pragma omp taskwait
FDEBUG( FDebug::Controller << "\tFinished (@Direct Pass (L2P) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\tFinished (@Direct Pass (L2P) = " << counterTime.tacAndElapsed() << "s)\n" );
}
};
......
......@@ -68,7 +68,7 @@ public:
this->kernels[idxThread] = new KernelClass(*inKernels);
}
FDEBUG(FDebug::Controller << "FFmmAlgorithmTask (Max Thread " << omp_get_max_threads() << ")\n");
FLOG(FDebug::Controller << "FFmmAlgorithmTask (Max Thread " << omp_get_max_threads() << ")\n");
}
/** Default destructor */
......@@ -105,8 +105,8 @@ private:
/** P2M */
void bottomPass(){
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Bottom Pass\n").write(FDebug::Flush) );
FDEBUG(FTic counterTime);
FLOG( FDebug::Controller.write("\tStart Bottom Pass\n").write(FDebug::Flush) );
FLOG(FTic counterTime);
#pragma omp parallel
{
......@@ -129,7 +129,7 @@ private:
}
}
FDEBUG( FDebug::Controller << "\tFinished (@Bottom Pass (P2M) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\tFinished (@Bottom Pass (P2M) = " << counterTime.tacAndElapsed() << "s)\n" );
}
/////////////////////////////////////////////////////////////////////////////
......@@ -139,8 +139,8 @@ private:
/** M2M */
void upwardPass(){
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Upward Pass\n").write(FDebug::Flush); );
FDEBUG(FTic counterTime);
FLOG( FDebug::Controller.write("\tStart Upward Pass\n").write(FDebug::Flush); );
FLOG(FTic counterTime);
#pragma omp parallel
{
......@@ -155,7 +155,7 @@ private:
// for each levels
for(int idxLevel = OctreeHeight - 2 ; idxLevel > 1 ; --idxLevel ){
FDEBUG(FTic counterTimeLevel);
FLOG(FTic counterTimeLevel);
// for each cells
do{
// We need the current cell and the child
......@@ -170,13 +170,13 @@ private:
octreeIterator = avoidGotoLeftIterator;// equal octreeIterator.moveUp(); octreeIterator.gotoLeft();
#pragma omp taskwait
FDEBUG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
FLOG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
}
}
}
FDEBUG( FDebug::Controller << "\tFinished (@Upward Pass (M2M) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\tFinished (@Upward Pass (M2M) = " << counterTime.tacAndElapsed() << "s)\n" );
}
/////////////////////////////////////////////////////////////////////////////
......@@ -187,8 +187,8 @@ private:
void transferPass(){
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Downward Pass (M2L)\n").write(FDebug::Flush); );
FDEBUG(FTic counterTime);
FLOG( FDebug::Controller.write("\tStart Downward Pass (M2L)\n").write(FDebug::Flush); );
FLOG(FTic counterTime);
#pragma omp parallel
{
#pragma omp single nowait
......@@ -203,7 +203,7 @@ private:
// for each levels
for(int idxLevel = 2 ; idxLevel < OctreeHeight ; ++idxLevel ){
FDEBUG(FTic counterTimeLevel);
FLOG(FTic counterTimeLevel);
// for each cells
do{
int counter = tree->getInteractionNeighbors(neighbors, octreeIterator.getCurrentGlobalCoordinate(), idxLevel);
......@@ -229,11 +229,11 @@ private:
}
#pragma omp taskwait
FDEBUG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
FLOG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
}
}
}
FDEBUG( FDebug::Controller << "\tFinished (@Downward Pass (M2L) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\tFinished (@Downward Pass (M2L) = " << counterTime.tacAndElapsed() << "s)\n" );
}
/////////////////////////////////////////////////////////////////////////////
......@@ -242,8 +242,8 @@ private:
void downardPass(){ // second L2L
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Downward Pass (L2L)\n").write(FDebug::Flush); );
FDEBUG(FTic counterTime);
FLOG( FDebug::Controller.write("\tStart Downward Pass (L2L)\n").write(FDebug::Flush); );
FLOG(FTic counterTime);
#pragma omp parallel
{
......@@ -257,7 +257,7 @@ private:
const int heightMinusOne = OctreeHeight - 1;
// for each levels exepted leaf level
for(int idxLevel = 2 ; idxLevel < heightMinusOne ; ++idxLevel ){
FDEBUG(FTic counterTimeLevel);
FLOG(FTic counterTimeLevel);
// for each cells
do{
#pragma omp task firstprivate(octreeIterator) shared(idxLevel)
......@@ -271,12 +271,12 @@ private:
octreeIterator = avoidGotoLeftIterator;
#pragma omp taskwait
FDEBUG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
FLOG( FDebug::Controller << "\t\t>> Level " << idxLevel << " = " << counterTimeLevel.tacAndElapsed() << "s\n" );
}
}
}
FDEBUG( FDebug::Controller << "\tFinished (@Downward Pass (L2L) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\tFinished (@Downward Pass (L2L) = " << counterTime.tacAndElapsed() << "s)\n" );
}
......@@ -287,9 +287,9 @@ private:
/** P2P */
void directPass(){
FTRACE( FTrace::FFunction functionTrace(__FUNCTION__, "Fmm" , __FILE__ , __LINE__) );
FDEBUG( FDebug::Controller.write("\tStart Direct Pass\n").write(FDebug::Flush); );
FDEBUG(FTic counterTime);
FDEBUG(FTic computationCounter);
FLOG( FDebug::Controller.write("\tStart Direct Pass\n").write(FDebug::Flush); );
FLOG(FTic counterTime);
FLOG(FTic computationCounter);
const int heightMinusOne = OctreeHeight - 1;
......@@ -316,7 +316,7 @@ private:
} while(octreeIterator.moveRight());
FDEBUG( computationCounter.tic() );
FLOG( computationCounter.tic() );
for( int idxShape = 0 ; idxShape < SizeShape ; ++idxShape){
const int nbLeaf = shapes[idxShape].getSize();
......@@ -334,13 +334,13 @@ private:
#pragma omp taskwait
}
FDEBUG( computationCounter.tac() );
FLOG( computationCounter.tac() );
}
}
FDEBUG( FDebug::Controller << "\tFinished (@Direct Pass (L2P + P2P) = " << counterTime.tacAndElapsed() << "s)\n" );
FDEBUG( FDebug::Controller << "\t\t Computation L2P + P2P : " << computationCounter.cumulated() << " s\n" );
FLOG( FDebug::Controller << "\tFinished (@Direct Pass (L2P + P2P) = " << counterTime.tacAndElapsed() << "s)\n" );
FLOG( FDebug::Controller << "\t\t Computation L2P + P2P : " << computationCounter.cumulated() << " s\n" );
}
};
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -71,10 +71,10 @@ public:
if(this->file != NULL) {
int sizeOfElement(0);
removeWarning += fread(&sizeOfElement, sizeof(int), 1, file);
FDEBUG(if(sizeOfElement != int(sizeof(FReal)) ){)
FDEBUG( FDebug::Controller.writeFromLine("Warning type size between file and FReal are differents\n", __LINE__, __FILE__); )
FLOG(if(sizeOfElement != int(sizeof(FReal)) ){)
FLOG( FDebug::Controller.writeFromLine("Warning type size between file and FReal are differents\n", __LINE__, __FILE__); )
printf("%d sizeofelement\n",sizeOfElement);
FDEBUG(})
FLOG(})
removeWarning += fread(&this->nbParticles, sizeof(FSize), 1, file);
removeWarning += fread(&this->boxWidth, sizeof(FReal), 1, file);
......
......@@ -83,9 +83,9 @@ public:
&& MPI_File_read(file, &this->totalNbParticles, 1, MPI_LONG_LONG, &status) == MPI_SUCCESS
&& MPI_File_read(file, xyzBoxWidth, 4, MPI_FLOAT, &status) == MPI_SUCCESS ){
FDEBUG(if(sizeOfElement != sizeof(FReal)){)
FDEBUG( FDebug::Controller.writeFromLine("Warning type size between file and FReal are differents\n", __LINE__, __FILE__); )
FDEBUG(})
FLOG(if(sizeOfElement != sizeof(FReal)){)
FLOG( FDebug::Controller.writeFromLine("Warning type size between file and FReal are differents\n", __LINE__, __FILE__); )
FLOG(})
this->boxWidth = xyzBoxWidth[3];
this->centerOfBox.setPosition(xyzBoxWidth[0],xyzBoxWidth[1],xyzBoxWidth[2]);
......@@ -121,9 +121,9 @@ public:
// check if needed
int count(0);
MPI_Get_count(&status, MPI_INT, &count);
FDEBUG(if(count / 4 != this->nbParticles){)
FDEBUG( FDebug::Controller<< "Error read " << count << " data, nbPart is " << this->nbParticles << __LINE__ << " " << __FILE__ << "\n"; )
FDEBUG(})
FLOG(if(count / 4 != this->nbParticles){)
FLOG( FDebug::Controller<< "Error read " << count << " data, nbPart is " << this->nbParticles << __LINE__ << " " << __FILE__ << "\n"; )
FLOG(})
}
else{
this->totalNbParticles = 0;
......@@ -138,9 +138,9 @@ public:
if(file != NULL) {
int sizeOfElement(0);
removeWarning += fread(&sizeOfElement, sizeof(int), 1, file);
FDEBUG(if(sizeOfElement != int(sizeof(FReal)) ){)
FDEBUG( FDebug::Controller.writeFromLine("Warning type size between file and FReal are differents\n", __LINE__, __FILE__); )
FDEBUG(})
FLOG(if(sizeOfElement != int(sizeof(FReal)) ){)
FLOG( FDebug::Controller.writeFromLine("Warning type size between file and FReal are differents\n", __LINE__, __FILE__); )
FLOG(})
removeWarning += fread(&this->totalNbParticles, sizeof(FSize), 1, file);
removeWarning += fread(&this->boxWidth, sizeof(FReal), 1, file);
......
......@@ -23,11 +23,11 @@
#ifndef ScalFMM_USE_LOG
#define FDEBUG( X )
#define FLOG( X )
#else
#define FDEBUG( X ) X
#define FLOG( X ) X
#include <iostream>
#include <fstream>
......@@ -42,8 +42,8 @@
* You have to use the DEBUG macro as shown in the example.
*
* <code>
* FDEBUG( FDebug::Controller.writeFromLine("hello World", __LINE__, __FILE__); ) <br>
* FDEBUG( FDebug::Controller << "I want to debug " << toto << "\n"; )
* FLOG( FDebug::Controller.writeFromLine("hello World", __LINE__, __FILE__); ) <br>
* FLOG( FDebug::Controller << "I want to debug " << toto << "\n"; )
* </code>
*/
class FDebug : public FNoCopyable {
......
......@@ -59,7 +59,7 @@ public:
this->sinTheta = FMath::Sqrt(x2y2) / r;
this->theta = FMath::ACos(this->cosTheta);
// if r == 0 we cannot divide!
FDEBUG(if( r < FMath::Epsilon ) FDebug::Controller << "!!! In FSpherical, r == 0!\n"; )
FLOG(if( r < FMath::Epsilon ) FDebug::Controller << "!!! In FSpherical, r == 0!\n"; )
}
/** Get the radius */
......
......@@ -27,21 +27,21 @@ int main(void){
std::cout << ">> to understand the FDebug system.\n";
//////////////////////////////////////////////////////////////
// Print data simply
FDEBUG( FDebug::Controller << "Hello Wordl\n");
FLOG( FDebug::Controller << "Hello Wordl\n");
// Print a variable (formated print)
int i = 50;
FDEBUG( FDebug::Controller.writeVariableFromLine( "i", i, __LINE__, __FILE__););
FLOG( FDebug::Controller.writeVariableFromLine( "i", i, __LINE__, __FILE__););
// Write a developer information
FDEBUG( FDebug::Controller.writeFromLine("Strange things are there!", __LINE__, __FILE__); )
FLOG( FDebug::Controller.writeFromLine("Strange things are there!", __LINE__, __FILE__); )
// Flush
FDEBUG( FDebug::Controller << FDebug::Flush );
FLOG( FDebug::Controller << FDebug::Flush );
// Change stream type
FDEBUG( FDebug::Controller.writeToFile("testDebug.out.temp"); )
FDEBUG( FDebug::Controller << "Hello Wordl 2 the return\n");
FLOG( FDebug::Controller.writeToFile("testDebug.out.temp"); )
FLOG( FDebug::Controller << "Hello Wordl 2 the return\n");
return 0;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment