targets() method from fcf::NTest::Logger class
Class:
Package: fcfTest
File: test.hpp
Available from version: 1.2.1
Provides access to the current collection of output targets.
The
This method has two distinct behaviors depending on whether it is used for reading or writing:
- Read Mode: When called without arguments, it returns a copy of the current list of targets (
fcf::NTest::Logger::OutputTargets ). This is useful for inspecting where the logger is currently sending its output. - Write Mode: When called with a
fcf::NTest::Logger::OutputTargets object as an argument, it replaces the existing collection of targets with the provided one.
Arguments
- The new collection of output targets to be set in the logger.
Result
- A copy of the current list of output targets.
Example: Reading and Replacing Output Targets
Demonstrating how to retrieve the current targets and then replace them with a new custom configuration.
#define FCF_TEST_IMPLEMENTATION
#include <fcfTest/test.hpp>
#include <iostream>
#include <fstream>
FCF_TEST_DECLARE ("TargetDemo", "Logger", "TargetsAccessTest") {
fcf::NTest::Logger & logger = fcf::NTest::logger ();
// 1. Retrieve the current targets (Read Mode)
fcf::NTest::Logger::OutputTargets currentTargets = logger.targets ();
fcf::NTest::log () << "Current number of targets: " << currentTargets.size() << std::endl;
// 2. Create a new set of targets
std::ofstream fileStream("test_output.log");
fcf::NTest::Logger::OutputTarget newTarget;
newTarget.name = "file-target";
newTarget.stream = &fileStream;
newTarget.format = "default";
fcf::NTest::Logger::OutputTargets newTargets(currentTargets);
newTargets.push_back(newTarget);
// 3. Replace the existing targets (Write Mode)
logger.targets (newTargets);
// 4. Verify by logging a message
fcf::NTest::log () << "This message goes to the file." << std::endl;
// 5. Restore targets
logger.targets (currentTargets);
FCF_TEST (true);
}
int main(int a_argc, char* a_argv[]) {
bool error = false;
fcf::NTest::cmdRun (a_argc, a_argv, fcf::NTest::CRM_RUN , &error);
return error ? 1 : 0;
}
Output:
Performing the test: "TargetDemo" -> "Logger" -> "TargetsAccessTest" ...
> Current number of targets: 1
> This message goes to the file.
[SUCCESS] Test completed successfully (0.000`075`002 sec)
[SUCCESS] All tests were completed.
Tests: 1 passed, 0 failed, 0 skipped, 1 total
Duration: 0.000`075`002 sec
> This message goes to the file.
The
VPSDime is an industry leading VPS hosting company that provides virtualized server services with high performance, availability and friendly support.