log4cplus 直接创建logger 对象
#include <log4cplus/loggingmacros.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/layout.h>
#include <log4cplus/consoleappender.h>
#include <log4cplus/logger.h>
#include <log4cplus/configurator.h>
using namespace log4cplus;
using namespace log4cplus::helpers;
void CreateLogConsole(const char *strLogName)
{
// 1、生成一个appender 对象
SharedAppenderPtr pConsoleAppender(new ConsoleAppender());
// 2、生成layout 对象并绑定到appender
std::auto_ptr<Layout> pLayout(new SimpleLayout());
pConsoleAppender->setLayout(pLayout);
// 3、生成logger 对象
Logger logSuyh = Logger::getInstance(LOG4CPLUS_TEXT(strLogName));
// 4、设置Logger 优先级
logSuyh.setLogLevel(ALL_LOG_LEVEL);
// 5、将需要关联的Logger 的Appender 添加到Logger 上
logSuyh.addAppender(pConsoleAppender);
// 6、使用Logger
LOG4CPLUS_ERROR(logSuyh, "Console self suyh.log");
LOG4CPLUS_ERROR_FMT(logSuyh, , "string text.");
}
void CreateLogFile(const char *strLogName, const char *strLogDir, const char *strLogFile)
{
// 1、生成一个appender 对象
MIFileAppender *miAppender = new MIFileAppender(LOG4CPLUS_TEXT(strLogDir));
miAppender->init(strLogFile, );
SharedAppenderPtr pAppender(miAppender);
// 2、生成layout 对象并绑定到appender
std::auto_ptr<Layout> pLayout(new SimpleLayout());
pAppender->setLayout(pLayout);
// 3、生成logger 对象
Logger logSuyh = Logger::getInstance(LOG4CPLUS_TEXT(strLogName));
// 4、设置Logger 优先级
logSuyh.setLogLevel(ALL_LOG_LEVEL);
// 5、将需要关联的Logger 的Appender 添加到Logger 上
// 这里可以添加多个appender ,这样只要用该strLogName 的Logger 对象输出的日志将会
// 同时输出到所有的appender 指定的文件或者控制台上
logSuyh.addAppender(pAppender);
// 6、使用Logger
LOG4CPLUS_ERROR(logSuyh, "Log file self suyh.log");
}
int main()
{
CreateLogFile("suyh_01", "suyh_log_dir", "log_file_01");
CreateLogFile("suyh_02", "suyh_log_dir", "log_file_02");
CreateLogFile("suyh_03", "suyh_log_dir", "log_file_03");
log4cplus::Logger logSuyh01 = log4cplus::Logger::getInstance("suyh_01");
log4cplus::Logger logSuyh02 = log4cplus::Logger::getInstance("suyh_02");
log4cplus::Logger logSuyh03 = log4cplus::Logger::getInstance("suyh_03");
LOG4CPLUS_INFO(logSuyh01, "log4cplus suyh01 log text...");
LOG4CPLUS_INFO(logSuyh02, "log4cplus suyh02 log text...");
LOG4CPLUS_INFO(logSuyh03, "log4cplus suyh03 log text...");
;
}
log4cplus 直接创建logger 对象的更多相关文章
- Spring AOP 源码分析 - 创建代理对象
1.简介 在上一篇文章中,我分析了 Spring 是如何为目标 bean 筛选合适的通知器的.现在通知器选好了,接下来就要通过代理的方式将通知器(Advisor)所持有的通知(Advice)织入到 b ...
- spring aop 源码分析(三) @Scope注解创建代理对象
一.源码环境的搭建: @Component @Scope(scopeName = ConfigurableBeanFactory.SCOPE_SINGLETON,proxyMode = ScopedP ...
- 死磕Spring之AOP篇 - Spring AOP自动代理(三)创建代理对象
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读. Spring 版本:5.1 ...
- 创建javaScript对象的方法
一.工厂模式 function person (name,age) { var p=new Object(); p.name=name; p.age=age; p.showMessage=functi ...
- .net下灰度模式图像在创建Graphics时出现:无法从带有索引像素格式的图像创建graphics对象 问题的解决方案。
在.net下,如果你加载了一副8位的灰度图像,然后想向其中绘制一些线条.或者填充一些矩形.椭圆等,都需要通过Grahpics.FromImage创建Grahphics对象,而此时会出现:无法从带有索引 ...
- win7 装了VB虚拟机 开始挺好用 后来突然就打不开了 提示如下错误:(如图)创建 COM 对象失败.
创建 COM 对象失败. 应用程序将被中断. Start tag expected, '<' not found. Location: 'C:\Users\Mike/.VirtualBox\Vi ...
- 在这个看脸的世界,该如何优雅的创建JS对象
Javascript是一门解释型的语言,是基于对象的,严格来说并不怎么符合的面向对象的标准,显著的特点就是函数就是“一等对象”,与传统的面向对象语言不同的时,Javascript有“一千种”方法来创建 ...
- java 创建string对象机制 字符串缓冲池 字符串拼接机制
对于创建String对象的机制,在这一过程中涉及的东西还是值得探究一番的. 首先看通过new String对象和直接赋值的方式有什么区别,看如下代码: public static void main( ...
- 创建XMLHttpRequest对象
创建XMLHttpRequest对象 XMLHttpRequest对象: 用于在后台与服务器交换数据,可以在不重新加载整个页面的情况下,对页面的部分内容进行更新. 创建XMLHttpRequest对象 ...
随机推荐
- 前端一:走进HTML
一:HTML(HyperText Markup Language)介绍 超文本标记语言,标准通用标记语言下的一个应用.“超文本”就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素.超文本标记语 ...
- Day23_IO第五天
1.递归求5的阶乘 package com.heima.chario; public class Demo8_Digui { /** * @param args * 递归:方法自己调用自己 * 5! ...
- K-Means 聚类算法原理分析与代码实现
前言 在前面的文章中,涉及到的机器学习算法均为监督学习算法. 所谓监督学习,就是有训练过程的学习.再确切点,就是有 "分类标签集" 的学习. 现在开始,将进入到非监督学习领域.从经 ...
- 系统弹性概念[TODO]
系统弹性 Shopify构建分布式可扩展应用的最佳实践 [编者的话]在构建大型分布式系统应用时,如何降低不同部分之间的依赖,增强系统的弹性,电商解决方案提供商 Shopify 给出了解决方法. 弹性矩 ...
- Java进阶(三)多线程开发关键技术
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...
- dapper 学习
上一篇, 提到Query<Test>查询的时候, 如果Test中包含自定义class, Dapper不会给自定义class完成映射, 而是直接给null, 其实是可以实现的, 答案就在下面 ...
- Eclipse/IDEA使用小技巧
使用IDEA,先将keymap改为eclipse形式 1.搜索技巧: f4:列举所有类树状结构 Ctrl+F:搜索特定词 Ctrl+T:列举所有子类 Ctrl+O:快速检索想要的方法 Ctrl+Shi ...
- Java篇-File类之常用操作
/** * */ package com.io.file; import java.io.File; import java.io.IOException; /** * <pre> * & ...
- linux5个搜索命令
概要 linux中主要有5个文件查找命令:find.locate.whereis.which.type.find最为强大,但耗时较长.locate可看做find的精简版,但是它的速度非常快.where ...
- ArcGIS Earth
恩,万众瞩目的ArcGIS Earth,现在华丽丽的可以在官网上下载了 满怀希望的心花怒放的我就去下载了...... 然后得然后...... 打开界面简洁的不要不要的,连个Esri的logo都没有.好 ...