| | |
| | | import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
|
| | | import com.yeshi.fanli.exception.ShareGoodsException;
|
| | | import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
|
| | | import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
|
| | | import com.yeshi.fanli.service.inter.goods.recommend.RecommendGoodsDeleteHistoryService;
|
| | |
| | |
|
| | | private void doTaoLiJinBuy(Long uid, Long auctionId, PrintWriter out) {
|
| | | JSONObject data = new JSONObject();
|
| | | TaoBaoLink taoBaoLink;
|
| | | TaoBaoLink taoBaoLink = null;
|
| | | try {
|
| | | // 根据日期与商品ID查询
|
| | | TLJBuyGoods tljBuyGoods = tljBuyGoodsService.selectByAuctionIdAndDay(auctionId,
|
| | |
| | | }
|
| | | TaoKeAppInfo app = new TaoKeAppInfo(config.getAppKey(), config.getAppSecret(), config.getDefaultPid());
|
| | | taoBaoLink = shareGoodsService.getTaoLiJinLinkForBuyWithOutFanLi(uid, auctionId, app);
|
| | | } catch (TaoLiJinCreateException e1) {
|
| | | out.print(JsonUtil.loadFalseResult(e1.getCode(), "淘礼金红包创建失败"));
|
| | | return;
|
| | | } catch (ShareGoodsException e) {
|
| | | out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
|
| | | return;
|
New file |
| | |
| | | package com.yeshi.fanli.exception;
|
| | |
|
| | | public class BaseException extends Exception {
|
| | | private static final long serialVersionUID = 1L;
|
| | | private int code;
|
| | | private String msg;
|
| | |
|
| | | public int getCode() {
|
| | | return code;
|
| | | }
|
| | |
|
| | | public String getMsg() {
|
| | | return msg;
|
| | | }
|
| | |
|
| | | public BaseException(int code, String msg) {
|
| | | this.code = code;
|
| | | this.msg = msg;
|
| | | }
|
| | |
|
| | | public BaseException() {
|
| | | }
|
| | |
|
| | | @Override
|
| | | public String getMessage() {
|
| | | return this.msg;
|
| | | }
|
| | | }
|
| | |
| | | // 其他错误
|
| | | public static final int CODE_OTHER = 4;
|
| | |
|
| | | // 商品支持创建红包
|
| | | public static final int CODE_TLJ_FORBIDDEN = 101;
|
| | | // 官方账户余额不足
|
| | | public static final int CODE_TLJ_NO_MONEY = 102;
|
| | |
|
| | |
|
| | |
|
| | | private int code;
|
New file |
| | |
| | | package com.yeshi.fanli.exception.tlj;
|
| | |
|
| | | import com.yeshi.fanli.exception.BaseException;
|
| | |
|
| | | /**
|
| | | * 淘礼金创建异常
|
| | | * |
| | | * @author Administrator
|
| | | *
|
| | | */
|
| | | public class TaoLiJinCreateException extends BaseException {
|
| | |
|
| | | public TaoLiJinCreateException(int code, String msg) {
|
| | | super(code, msg);
|
| | | }
|
| | |
|
| | | public TaoLiJinCreateException() {
|
| | | super();
|
| | | }
|
| | |
|
| | | // 商品支持创建红包
|
| | | public static final int CODE_TLJ_FORBIDDEN = 101;
|
| | | // 官方账户余额不足
|
| | | public static final int CODE_TLJ_NO_MONEY = 102;
|
| | |
|
| | | }
|
New file |
| | |
| | | package com.yeshi.fanli.log;
|
| | |
|
| | | import org.apache.log4j.Logger;
|
| | |
|
| | | public class TLJLogHelper {
|
| | | // log
|
| | | private static Logger tljLogger = Logger.getLogger("tljLog");
|
| | |
|
| | | public static void info(Long auctionId, String msg) {
|
| | | String message = String.format("商品ID: 错误信息:%s", auctionId + "", msg);
|
| | | tljLogger.info(message);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | import com.yeshi.fanli.exception.ShareGoodsException;
|
| | | import com.yeshi.fanli.exception.taobao.TaoKeApiException;
|
| | | import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
|
| | | import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
|
| | | import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.impl.monitor.BusinessEmergent110ServiceImpl;
|
| | |
| | |
|
| | | @Override
|
| | | public TaoBaoLink getTaoLiJinLinkForBuyWithOutFanLi(Long uid, Long auctionId, TaoKeAppInfo app)
|
| | | throws ShareGoodsException {
|
| | | throws ShareGoodsException, TaoLiJinCreateException {
|
| | | if (uid == null || uid <= 0) {
|
| | | throw new ShareGoodsException(1, "用户ID不能为空");
|
| | | }
|
| | |
| | | taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, "自购立减", perface, 1,
|
| | | new Date(currentTime - 1000 * 60 * 10L), sendEndTime, new Date(currentTime - 1000 * 60 * 10L),
|
| | | sendEndTime, app);
|
| | | } catch (TaoKeApiException e) {
|
| | | if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {// 资金不足
|
| | | } catch (TaoLiJinCreateException e1) {
|
| | | if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_NO_MONEY) {// 资金不足
|
| | | TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppKeyCache(app.getAppKey());
|
| | | businessEmergent110Service.tljNoMoney(config.getAccount());
|
| | | } else if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {// 商品不允许创建淘礼金
|
| | |
|
| | | }
|
| | | LogHelper.errorDetailInfo(e1, e1.getMessage(), null);
|
| | | } catch (TaoKeApiException e) {
|
| | | LogHelper.errorDetailInfo(e, e.getMessage(), null);
|
| | | throw new ShareGoodsException(5, "生成推广链接失败");
|
| | | }
|
| | |
|
| | | if (taoLiJinDTO == null)
|
| | | throw new ShareGoodsException(5, "生成推广链接失败");
|
| | |
|
| | |
| | | import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
|
| | | import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
|
| | | import com.yeshi.fanli.exception.taobao.TaoKeApiException;
|
| | | import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
|
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
|
| | | import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
|
| | |
| | |
|
| | | @Override
|
| | | public boolean verifyCanCreateTLJ(Long auctionId, TaoKeAppInfo info) {
|
| | | TaoLiJinDTO taoLiJinDTO = null;
|
| | | try {
|
| | | taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, "淘礼金验证", new BigDecimal("1.00"), 1, new Date(),
|
| | | TaoKeApiUtil.createTaoLiJin(auctionId, "淘礼金验证", new BigDecimal("1.00"), 1, new Date(),
|
| | | new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), new Date(),
|
| | | new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), info);
|
| | | } catch (TaoKeApiException e) {
|
| | | if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) {
|
| | | // 该商品不支持创建淘礼金红包
|
| | | } catch (TaoLiJinCreateException e1) {
|
| | | if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {// 商品不允许创建淘礼金
|
| | | deleteByGoodsId(auctionId);
|
| | | return false;
|
| | | } else if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {
|
| | | // 官方玩法钱包余额不足 TODO
|
| | | }
|
| | |
|
| | | } catch (TaoKeApiException e) {
|
| | |
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
| | | import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
|
| | | import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
|
| | | import com.yeshi.fanli.exception.taobao.TaoKeApiException;
|
| | | import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
|
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
|
| | |
| | | taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, "淘礼金验证", new BigDecimal("1.00"), 1, new Date(),
|
| | | new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), new Date(),
|
| | | new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), app);
|
| | | } catch (TaoKeApiException e) {
|
| | | if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) {
|
| | | } catch (TaoLiJinCreateException e1) {
|
| | | if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {
|
| | | // 该商品不支持创建淘礼金红包
|
| | | deleteByGoodsId(auctionId);
|
| | | return false;
|
| | | } else if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {
|
| | | } else if (e1.getCode() == TaoLiJinCreateException.CODE_TLJ_NO_MONEY) {
|
| | | // 官方玩法钱包余额不足 TODO
|
| | | }
|
| | | } catch (TaoKeApiException e) {
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
| | | import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
|
| | | import com.yeshi.fanli.exception.taobao.TaoKeApiException;
|
| | | import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
|
| | | import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
|
| | |
| | |
|
| | | @Resource
|
| | | private ShareHotGoodsService shareHotGoodsService;
|
| | | |
| | |
|
| | | @Override
|
| | | public UserTaoLiJinRecord selectByPrimaryKey(Long id) {
|
| | | return userTaoLiJinRecordMapper.selectByPrimaryKey(id);
|
| | | }
|
| | |
|
| | | |
| | | @Transactional
|
| | | @Override
|
| | | public UserTaoLiJinRecord createSelfBuyTaoLiJin(Long uid, int totalNum, TaoBaoGoodsBrief goods)
|
| | |
| | | UserTaoLiJinRecord record = createUserTaoLiJin(1, uid, goods.getAuctionId(), perface, 1, name,
|
| | | sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID);
|
| | | record.setSendUrl(record.getSendUrl() + "&relationId=" + relationId);
|
| | | UserTaoLiJinRecord updateRecoed=new UserTaoLiJinRecord();
|
| | | UserTaoLiJinRecord updateRecoed = new UserTaoLiJinRecord();
|
| | | updateRecoed.setId(record.getId());
|
| | | updateRecoed.setSendUrl(record.getSendUrl());
|
| | | userTaoLiJinRecordMapper.updateByPrimaryKeySelective(record);
|
| | |
| | | perface = new BigDecimal(1);
|
| | | } else {
|
| | | // 计算推广红包
|
| | | String warningRate = configTaoLiJinService.getValueByKey("warning_value",new Date());
|
| | | String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
|
| | | perface = TaoLiJinUtil.getSpreadMoney(warningRate, goods);
|
| | | }
|
| | |
|
| | |
| | | sendStartTime, sendEndTime, null, useEndTime, TaoBaoConstant.TAOBAO_TLJ_RELATION_PID_DEFAULT);
|
| | | String sendUrl = record.getSendUrl() + "&relationId=" + relationId;
|
| | | record.setSendUrl(sendUrl);
|
| | | UserTaoLiJinRecord updateRecoed=new UserTaoLiJinRecord();
|
| | | UserTaoLiJinRecord updateRecoed = new UserTaoLiJinRecord();
|
| | | updateRecoed.setId(record.getId());
|
| | | updateRecoed.setSendUrl(sendUrl);
|
| | | userTaoLiJinRecordMapper.updateByPrimaryKeySelective(record);
|
| | |
| | |
|
| | | // 过期 -取消收回
|
| | | // userTaoLiJinOriginService.overdueHongBao(uid);
|
| | | |
| | |
|
| | | // 总推广红包
|
| | | BigDecimal totalMoney = MoneyBigDecimalUtil.mul(perface, new BigDecimal(totalNum));
|
| | | |
| | |
|
| | | // 自购时的红包余额
|
| | | if (origin == 1) {
|
| | | BigDecimal tljSelf = userMoneyExtra.getTljSelf();
|
| | | if (tljSelf == null || tljSelf.compareTo(totalMoney) < 0) {
|
| | | throw new UserTaoLiJinRecordException(101, "自购红包余额不足");
|
| | | }
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | // 分享时的红包余额
|
| | | BigDecimal tlj = userMoneyExtra.getTlj();
|
| | | if (tlj == null || tlj.compareTo(totalMoney) < 0) {
|
| | | throw new UserTaoLiJinRecordException(101, "分享红包余额不足");
|
| | | }
|
| | | |
| | |
|
| | | // 创建淘礼金红包
|
| | | TaoLiJinDTO taoLiJinDTO = null;
|
| | | try {
|
| | | taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime,
|
| | | sendEndTime, useStartTime, useEndTime, new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid));
|
| | | } catch (TaoKeApiException e) {
|
| | | taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime,
|
| | | useStartTime, useEndTime,
|
| | | new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid));
|
| | | } catch (TaoLiJinCreateException e) {
|
| | | LogHelper.errorDetailInfo(e);
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) {
|
| | | if (e.getCode() == TaoLiJinCreateException.CODE_TLJ_FORBIDDEN) {
|
| | | // 该商品不支持创建淘礼金红包
|
| | | shareHotGoodsService.deleteByGoodsId(auctionId);
|
| | | } else if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {
|
| | | // 官方玩法钱包余额不足 TODO
|
| | | } else if (e.getCode() == TaoLiJinCreateException.CODE_TLJ_NO_MONEY) {
|
| | | // 官方玩法钱包余额不足 TODO
|
| | | }
|
| | | }
|
| | | });
|
| | | } catch (TaoKeApiException e1) {
|
| | | }
|
| | | |
| | |
|
| | | if (taoLiJinDTO == null) {
|
| | | throw new UserTaoLiJinRecordException(101, "淘宝API推广红包创建失败");
|
| | | }
|
| | |
| | | record.setRightsId(taoLiJinDTO.getRightsId());
|
| | | record.setSendUrl(taoLiJinDTO.getSendUrl());
|
| | | record.setCreateTime(new Date());
|
| | | if (origin == 1) { // 自购
|
| | | if (origin == 1) { // 自购
|
| | | record.setUseType(1);
|
| | | } else { // 分享
|
| | | } else { // 分享
|
| | | record.setUseType(2);
|
| | | }
|
| | | |
| | |
|
| | | userTaoLiJinRecordMapper.insertSelective(record);
|
| | |
|
| | | BigDecimal surplusTlj = MoneyBigDecimalUtil.sub(tlj, totalMoney); |
| | | |
| | | BigDecimal surplusTlj = MoneyBigDecimalUtil.sub(tlj, totalMoney);
|
| | |
|
| | | UserMoneyExtra updateExtra = new UserMoneyExtra();
|
| | | updateExtra.setUid(uid);
|
| | | if (origin == 1) { // 剩余淘礼金-- 自购
|
| | | updateExtra.setTljSelf(MoneyBigDecimalUtil.sub(userMoneyExtra.getTljSelf(), totalMoney));
|
| | | } |
| | | }
|
| | | updateExtra.setTlj(surplusTlj);
|
| | | updateExtra.setUpdateTime(new Date());
|
| | | userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
|
| | |
| | | } catch (Exception e) {
|
| | | LogHelper.errorDetailInfo(e);
|
| | | }
|
| | | |
| | | |
| | | if (origin == 1) { |
| | | return; // 自购不推送消息
|
| | |
|
| | | if (origin == 1) {
|
| | | return; // 自购不推送消息
|
| | | }
|
| | | |
| | | |
| | |
|
| | | // 使用成功消息
|
| | | try {
|
| | | String beizhu = "未被领取或领取后未使用部分退回";
|
| | |
| | | BigDecimal commission = userTaoLiJinRecordVO.getCommission();
|
| | | if (commission != null && commission.compareTo(shareMoney) > 0) {
|
| | | BigDecimal shareRate = hongBaoManageService.getShareRate();
|
| | | shareMoney = MoneyBigDecimalUtil.mul(commission, MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
|
| | | shareMoney = MoneyBigDecimalUtil.mul(commission,
|
| | | MoneyBigDecimalUtil.div(shareRate, new BigDecimal(100)));
|
| | | shareMoney = BigDecimalUtil.getWithNoZera(shareMoney);
|
| | | }
|
| | |
|
| | |
| | | public long countShareRecordByUid(Long uid) {
|
| | | return userTaoLiJinRecordMapper.countShareRecordByUid(uid);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public long countTodayNum(Long uid) {
|
| | | return userTaoLiJinRecordMapper.countTodayNum(uid);
|
| | |
| | | import com.yeshi.fanli.entity.taobao.TaoBaoLink;
|
| | | import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
|
| | | import com.yeshi.fanli.exception.ShareGoodsException;
|
| | | import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
|
| | |
|
| | | public interface ShareGoodsService {
|
| | |
|
| | |
| | | * @return
|
| | | * @throws ShareGoodsException
|
| | | */
|
| | | public TaoBaoLink getTaoLiJinLinkForBuyWithOutFanLi(Long uid, Long auctionId,TaoKeAppInfo app) throws ShareGoodsException;
|
| | | public TaoBaoLink getTaoLiJinLinkForBuyWithOutFanLi(Long uid, Long auctionId,TaoKeAppInfo app) throws ShareGoodsException,TaoLiJinCreateException;
|
| | |
|
| | | }
|
| | |
| | | import com.yeshi.fanli.exception.taobao.TaoBaoAuthException;
|
| | | import com.yeshi.fanli.exception.taobao.TaoKeApiException;
|
| | | import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
|
| | | import com.yeshi.fanli.exception.tlj.TaoLiJinCreateException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.log.TLJLogHelper;
|
| | | import com.yeshi.fanli.log.TaoKeLogHelper;
|
| | | import com.yeshi.fanli.tag.PageEntity;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | |
| | | // 淘礼金创建
|
| | | public static TaoLiJinDTO createTaoLiJin(Long auctionId, String name, BigDecimal perface, int totalNum,
|
| | | Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime, TaoKeAppInfo app)
|
| | | throws TaoKeApiException {
|
| | | throws TaoKeApiException, TaoLiJinCreateException {
|
| | | Map<String, String> map = new HashMap<>();
|
| | | map.put("method", "taobao.tbk.dg.vegas.tlj.create");
|
| | | map.put("adzone_id", app.getPid().split("_")[3]);
|
| | |
| | | // 接口返回异常
|
| | | String msgCode = root.optJSONObject("result").optString("msg_code");
|
| | | if (!StringUtil.isNullOrEmpty(msgCode)) {
|
| | | TLJLogHelper.info(auctionId, root.toString());// 淘礼金异常信息记录
|
| | | switch (msgCode) {
|
| | | case "FAIL_BIZ_ITEM_FORBIDDEN":
|
| | | throw new TaoKeApiException(TaoKeApiException.CODE_TLJ_FORBIDDEN, "该商品不支持创建淘礼金红包");
|
| | | throw new TaoLiJinCreateException(TaoLiJinCreateException.CODE_TLJ_FORBIDDEN, "该商品不支持创建淘礼金红包");
|
| | | case "FAIL_BIZ_ACCOUNT_UN_PAID":
|
| | | case "PRE_FREEZE_ASSET_ACCOUNT_ERROR":
|
| | | throw new TaoKeApiException(TaoKeApiException.CODE_TLJ_NO_MONEY, "官方玩法钱包余额不足");
|
| | | throw new TaoLiJinCreateException(TaoLiJinCreateException.CODE_TLJ_NO_MONEY, "官方玩法钱包余额不足");
|
| | | default:
|
| | | return null;
|
| | | throw new TaoKeApiException(Integer.parseInt(msgCode), root.toString());
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | log4j.appender.requestTimeLog.layout=org.apache.log4j.PatternLayout
|
| | | log4j.appender.requestTimeLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
|
| | |
|
| | |
|
| | | log4j.logger.tljLog=info,tljLog
|
| | | log4j.appender.tljLog=org.apache.log4j.DailyRollingFileAppender
|
| | | log4j.appender.tljLog.File=logs/request/requestTimeLog.log
|
| | | log4j.appender.tljLog.MaxFileSize=20MB
|
| | | log4j.appender.tljLog.MaxBackupIndex=100
|
| | | log4j.appender.tljLog.layout=org.apache.log4j.PatternLayout
|
| | | log4j.appender.tljLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
|
| | |
|
| | |
|
| | | log4j.appender.mongodb=org.apache.log4j.ConsoleAppender
|
| | | log4j.appender.mongodb.Target=System.out
|
| | | log4j.appender.mongodb.Threshold=DEBUG
|