当年只会C# 所以写C++就成这样了! log4cplus -> log4net

时间:2022-09-03 21:08:30

属实C++不会。 目前帮朋友弄个小项目需要小折腾一下。

c# 一直采用 log4net ,c++的呢,找找有个log4cplus  知识有限,做个通用类吧。别把精力放在这里。

动手创建个静态类。 为了保持一致性,由于好几年前还有一些BCL的动态库。 所以命名规则还采用原来的风格。

BCLLogHelper 静态类。在写项目添加静态类。直接调用就可以 (*_*)

头文件:

 // BCLSerialPort.cpp: implementation of the BCLSerialPort class.
// 作者:Mark liuyunsheng
//////////////////////////////////////////////////////////////////////
#pragma once
#include <vector>
#include <memory>
#include <log4cplus/logger.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/layout.h>
#include <log4cplus/ndc.h>
#include <log4cplus/helpers/loglog.h>
#include <log4cplus/loggingmacros.h> using namespace log4cplus; using namespace std; class BCLLogHelper
{
public:
static void Init();
static void Info(char* msg);
static void Error(char* msg);
};

下面为类库

 // BCLSerialPort.cpp: implementation of the BCLSerialPort class.
// 作者:Mark liuyunsheng
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "BCLLogHelper.h" #ifndef _DEBUG
#pragma comment(lib,"./log/log4cplus/lib/log4cplus.lib")
#else
#pragma comment(lib,"./log/log4cplus/lib/log4cplusSD.lib")
#endif void BCLLogHelper::Init()
{
helpers::LogLog::getLogLog()->setInternalDebugging(true);
SharedAppenderPtr append(new RollingFileAppender(LOG4CPLUS_TEXT("syslog.log"), * * , )); append->setName(LOG4CPLUS_TEXT("First")); std::auto_ptr<Layout> _layout(new PatternLayout(_T("%D{%Y-%m-%d %H:%M:%S,%q} [%t] %-5p - %m%n")));
append->setLayout(_layout);
Logger::getRoot().addAppender(append);
} void BCLLogHelper::Info(char* msg)
{
LOG4CPLUS_INFO(Logger::getInstance(LOG4CPLUS_TEXT("System")), msg);
} void BCLLogHelper::Error(char* msg)
{
LOG4CPLUS_ERROR(Logger::getInstance(LOG4CPLUS_TEXT("System")), msg);
}

忽然发现C++又捡起来了。 了解的深度不够。 只是能写项目。

学好一门语言你会发现所有的开发语言都是一样的。

目前发现C#、C++、Vb、Java、ActionScript 貌似都能写项目,仅仅是写项目级别。深度的原来了解的还不够。

本文仅作为开发思路。不提倡。还是要专精一门开发语言的好!

当年只会C# 所以写C++就成这样了! log4cplus -> log4net的更多相关文章

  1. 当年只会C&num; 所以写C&plus;&plus;就成这样了!

    这应该是4-5年前了. 当年之会c#敲敲代码也不会C++但深信开发这东西只要思想有了. 只是语法问题. 对于C++这貌似只有大牛才能胜任的,而对于我来说是如此困难. 所以想想办法搞了很多通用类来避免C ...

  2. 分布式计算 要不要把写日志独立成一个Server Remote Procedure Call Protocol

    w https://en.wikipedia.org/wiki/Remote_procedure_call In distributed computing a remote procedure ca ...

  3. 当年写的如何成为一名MSSQL DBA

    很多开发人员都想成为一名数据库培训,也有很多人一开始就把自己定位成为一名DBA,DBA究竟需要掌握些什么知识和技能呢?以下是我        做DBA工作和面试DBA时,整理的一些DBA方面的三十个问 ...

  4. 【pyhon】理想论坛爬虫1&period;05版,将读取和写DB分离成两个文件

    下午再接再厉仿照Nodejs版的理想帖子爬虫把Python版的也改造了下,但美中不足的是完成任务的线程数量似乎停滞在100个左右,让人郁闷.原因还待查. 先把代码贴出来吧,也算个阶段性成果. 爬虫代码 ...

  5. Android如果有一个任意写入的漏洞,如何将写权限转成执行权限

    这个题目我以为是考的怎么进行提权,结果原来是这样的: . DexClassLoader 动态载入应用可写入的 dex 可执行文件 . java.lang.Runtime.exec 方法执行应用可写入的 ...

  6. 将MNIST手写数据集转换成图片保存到本地

    # 加载图片 data = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = data.load_data() plt.im ...

  7. 一步一步用Canvas写一个贪吃蛇

    之前在慕课网看了几集Canvas的视频,一直想着写点东西练练手.感觉贪吃蛇算是比较简单的了,当年大学的时候还写过C语言字符版的,没想到还是遇到了很多问题. 最终效果如下(图太大的话 时间太长 录制gi ...

  8. 写在19年初的后端社招面试经历&lpar;两年经验&rpar;&colon; 蚂蚁 头条 PingCAP

    去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer.想着可以总结一下经验,分享一下自己这一段"骑驴找马"过 ...

  9. 曾经我是一个只会excel的数据分析师,直到我遇到了……

    我是一个数据分析师. 准确来说我是一个当年只会excel数据透视表,就天不怕地不怕地来当数据分析师的人.当年的某一天,我的老板Q我: 小刘啊,我小姨子给了我一个全国市委书记的名单,你帮我看看,有什么规 ...

随机推荐

  1. Linux学习之文件操作

    Linux,一起学习进步-    mkdir The mkdir command is used to create directories.It works like this: mkdir命令是用 ...

  2. php调用COM组件

    PHP 开启COM组件 1.先到PHP.INI中打开COM选项,com.allow_dcom = true 2.我这里的环境是PHP5.4.7,PHP 5.4.5后,com/dotnet 模块已经成了 ...

  3. Codefroces 750C:New Year and Rating(思维)

    http://codeforces.com/contest/750/problem/C 题意:有n场比赛,每场比赛有一个c,代表比赛结束后分数的增长情况,有一个d,代表这场比赛在div1或者div2打 ...

  4. Swift2&period;0 中的String(二):基本操作

    Swift中的字符串,第二篇,基本操作.其他的几篇传送门(GitHub打不开链接的同学请自行把地址github改成gitcafe,或者直接去归档里找:-P): Swift2.0 中的String(一) ...

  5. 【学习总结】iOS 数据保存几种方式总结

    在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: NSKeyedAr ...

  6. c语言学习之基础知识点介绍(六):if和switch结构

    本节主要说c语言中的分支结构. c语言中分支结构有两大类:一种是if,一种是switch. 一.if结构 //if结构,语法: //第一种: if(表达式){ //语句块 } //第二种: if(表达 ...

  7. 参考storm中的RotatingMap实现key超时处理

    storm0.8.1以后的RotatingMap完全可以独立于storm用来实现hashmap的key超时删除,并调用回调函数 RotatingMap.java: import java.util.H ...

  8. Maven项目中在properties 中使用 &dollar;&lbrace;&rcub; 来引用pom文件中的属性

    比如在pom文件中定义了属性如下: <jdbc.host.global>127.0.0.1</jdbc.host.global> <jdbc.databasename.g ...

  9. Unity运行错误代码处理

    1.Unity在运行时出现如图错误,但不影响运行效果展示. 2.错误原因:代码不规范. 3.检查代码,查看变量是否定义正确.

  10. nginx 配置web 虚拟文件夹 而且codeIgniter&comma;thinkphp 重定向url 地址

    nginx 配置虚拟文件夹而且url 重定向 server { #侦听80port listen 8090; #定义使用www.xx.com訪问 server_name 127.0.0.1; #设定本 ...