This commit is contained in:
Microprocess 2023-12-28 15:08:03 -03:00
parent 45e03d87c7
commit b73e260e35
7 changed files with 51 additions and 152 deletions

13
.vscode/settings.json vendored
View File

@ -1,13 +0,0 @@
{
"editor.fontSize": 13,
"editor.fontLigatures": true,
"editor.letterSpacing": 0.5,
"editor.smoothScrolling": true,
"editor.tabSize": 2,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.fixAll": "explicit"
},
"prisma-smart-formatter.typescript.defaultFormatter": "esbenp.prettier-vscode",
"prisma-smart-formatter.prisma.defaultFormatter": "Prisma.prisma"
}

View File

@ -1,29 +0,0 @@
version: '3.3'
services:
api:
container_name: evolution_api
image: evolution/api:local
build: .
restart: always
ports:
- 8080:8080
volumes:
- evolution_instances:/evolution/instances
- evolution_store:/evolution/store
networks:
- evolution-net
env_file:
- ./Docker/.env
command: ['node', './dist/src/main.js']
expose:
- 8080
volumes:
evolution_instances:
evolution_store:
networks:
evolution-net:
name: evolution-net
driver: bridge

View File

@ -1,80 +0,0 @@
version: '3.3'
services:
api:
container_name: evolution_api
image: evolution/api:local
build: .
restart: always
ports:
- 8080:8080
volumes:
- evolution_instances:/evolution/instances
- evolution_store:/evolution/store
networks:
- evolution-net
env_file:
- ./Docker/.env
command: ['node', './dist/src/main.js']
expose:
- 8080
mongodb:
container_name: mongodb
image: mongo
restart: always
ports:
- 27017:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=root
- PUID=1000
- PGID=1000
volumes:
- evolution_mongodb_data:/data/db
- evolution_mongodb_configdb:/data/configdb
networks:
- evolution-net
expose:
- 27017
mongo-express:
image: mongo-express
networks:
- evolution-net
environment:
ME_CONFIG_BASICAUTH_USERNAME: root
ME_CONFIG_BASICAUTH_PASSWORD: root
ME_CONFIG_MONGODB_SERVER: mongodb
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: root
ports:
- 8081:8081
links:
- mongodb
redis:
image: redis:latest
container_name: redis
command: >
redis-server
--port 6379
--appendonly yes
volumes:
- evolution_redis:/data
networks:
- evolution-net
ports:
- 6379:6379
volumes:
evolution_instances:
evolution_store:
evolution_mongodb_data:
evolution_mongodb_configdb:
evolution_redis:
networks:
evolution-net:
name: evolution-net
driver: bridge

View File

@ -1,28 +0,0 @@
version: '3.3'
services:
api:
container_name: evolution_api
image: atendai/evolution-api:latest
restart: always
ports:
- 8080:8080
volumes:
- evolution_instances:/evolution/instances
- evolution_store:/evolution/store
networks:
- evolution-net
env_file:
- ./Docker/.env
command: ['node', './dist/src/main.js']
expose:
- 8080
volumes:
evolution_instances:
evolution_store:
networks:
evolution-net:
name: evolution-net
driver: bridge

View File

@ -26,6 +26,8 @@ export type Log = {
LEVEL: LogLevel[];
COLOR: boolean;
BAILEYS: LogBaileys;
LOG_PATH: string;
LOG_EXPIRATION_DAYS: number;
};
export type SaveData = {
@ -265,6 +267,8 @@ export class ConfigService {
],
COLOR: process.env?.LOG_COLOR === 'true',
BAILEYS: (process.env?.LOG_BAILEYS as LogBaileys) || 'error',
LOG_PATH: join(__dirname, '../../') + process.env?.LOG_PATH || join(__dirname, '../../')+'log',
LOG_EXPIRATION_DAYS: Number.parseInt(process.env?.LOG_EXPIRATION_DAYS),
},
DEL_INSTANCE: isBooleanString(process.env?.DEL_INSTANCE)
? process.env.DEL_INSTANCE === 'true'

View File

@ -1,5 +1,6 @@
import dayjs from 'dayjs';
import fs from 'fs';
import fs, { mkdir } from 'fs';
import util from 'util';
import { configService, Log } from './env.config';
const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
@ -70,6 +71,18 @@ export class Logger {
this.configService.get<Log>('LOG').LEVEL.forEach((level) => types.push(Type[level]));
const typeValue = typeof value;
salvarLog(this.configService.get<Log>('LOG'),
'[Evolution API]'+
process.pid.toString()+
'-'+
`${formatDateLog(Date.now())} `+
`${type} `+
`[${this.context}]`+
`[${typeValue}]`+
value
);
if (types.includes(type)) {
if (configService.get<Log>('LOG').COLOR) {
console.log(
@ -139,3 +152,34 @@ export class Logger {
this.console(value, Type.DARK);
}
}
function salvarLog(env: any, log: string): void {
mkdir(env.LOG_PATH, { recursive: true }, (err) => { if (err) throw err; });
let file = new Date().toLocaleDateString().replaceAll('/', '');
file = env.LOG_PATH + '/' + file + '.txt';
try {
if (fs.existsSync(file)) {
fs.appendFileSync(file, log, "utf8");
} else {
fs.writeFileSync(file, log);
}
excluirArquivosAntigos(env.LOG_PATH, 5);
} catch (accessError) {
console.error('Erro ao salvar o log:', accessError);
}
}
function excluirArquivosAntigos(path: string, diasLimite: number): void {
const data = new Date();
data.setDate(data.getDate() - diasLimite);
let limite = Number.parseInt(data.toLocaleDateString().replaceAll('/', ''));
fs.readdirSync(path).forEach((nomeArquivo) => {
let file = Number.parseInt(nomeArquivo.replace(/^.*[\\\/]/, '').replace(/\.[^/.]+$/, ''));
if (file < limite) {
fs.unlinkSync(path + '/' + nomeArquivo);
console.log(`Arquivo ${nomeArquivo} excluído.`);
}
});
}

View File

@ -16,7 +16,8 @@
"skipLibCheck": true,
"strictNullChecks": false,
"incremental": true,
"noImplicitAny": false
"noImplicitAny": false,
"lib": ["ES2021.String"]
},
"exclude": ["node_modules", "./test", "./dist", "./prisma"]
}