File indexing completed on 2025-05-23 23:48:34
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include <cmath>
0013 #include <exception>
0014 #include <iostream>
0015 #include <iomanip>
0016 #include <fstream>
0017 #include <string>
0018 #include <vector>
0019 #include "FWCore/Utilities/interface/Exception.h"
0020 #include "FWCore/Utilities/interface/thread_safety_macros.h"
0021 #include "FWCore/PluginManager/interface/ProblemTracker.h"
0022 #include "FWCore/Utilities/interface/Presence.h"
0023 #include "FWCore/ParameterSetReader/interface/ParameterSetReader.h"
0024 #include "FWCore/PluginManager/interface/PresenceFactory.h"
0025 #include "FWCore/ServiceRegistry/interface/Service.h"
0026
0027 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0028
0029
0030
0031 std::string indirectWarn(int ) {
0032
0033 return std::string("\t\tEmit Warning level message ");
0034 }
0035
0036 std::string indirectInfo(int ) {
0037
0038 return std::string("\t\tEmit Info level message ");
0039 }
0040
0041 void DoMyStuff() {
0042
0043
0044
0045
0046 double d = M_PI;
0047 edm::LogWarning("cat_A") << "Test of std::setprecision(p):"
0048 << " Pi with precision 12 is " << std::setprecision(12) << d;
0049
0050 for (int i = 0; i < 25; ++i) {
0051
0052 edm::LogInfo("cat_B") << indirectInfo(i + 1) << i + 1;
0053
0054 edm::LogWarning("cat_C") << indirectWarn(i + 1) << i + 1;
0055 }
0056 }
0057
0058 int main(int, char* argv[]) {
0059 std::string const kProgramName = argv[0];
0060
0061 int rc = 0;
0062 CMS_SA_ALLOW try {
0063
0064 edm::AssertHandler ah;
0065
0066
0067
0068
0069
0070 std::shared_ptr<edm::Presence> theMessageServicePresence;
0071 theMessageServicePresence =
0072 std::shared_ptr<edm::Presence>(edm::PresenceFactory::get()->makePresence("SingleThreadMSPresence").release());
0073
0074
0075 std::string config =
0076 "process x = {"
0077 "service = MessageLogger {"
0078 "untracked vstring destinations = {'infos.mlog','warnings.mlog'}"
0079 "untracked PSet infos = {"
0080 "untracked string threshold = 'INFO'"
0081 "untracked PSet default = {untracked int32 limit = 1000000}"
0082 "}"
0083 "untracked PSet warnings = {"
0084 "untracked string threshold = 'WARNING'"
0085 "untracked PSet default = {untracked int32 limit = 1000000}"
0086 "}"
0087 "untracked vstring categories = {}"
0088 "}"
0089 "service = JobReportService{}"
0090 "service = SiteLocalConfigService{}"
0091 "}";
0092
0093
0094 std::unique_ptr<edm::ParameterSet> params;
0095 edm::makeParameterSets(config, params);
0096 edm::ServiceToken tempToken(edm::ServiceRegistry::createServicesFromConfig(std::move(params)));
0097
0098
0099 edm::ServiceRegistry::Operate operate(tempToken);
0100
0101
0102 DoMyStuff();
0103 }
0104
0105
0106 catch (cms::Exception& e) {
0107 std::cout << "cms::Exception caught in " << kProgramName << "\n" << e.explainSelf();
0108 rc = 1;
0109 } catch (std::exception& e) {
0110 std::cout << "Standard library exception caught in " << kProgramName << "\n" << e.what();
0111 rc = 1;
0112 } catch (...) {
0113 std::cout << "Unknown exception caught in " << kProgramName;
0114 rc = 2;
0115 }
0116
0117 return rc;
0118 }